Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   неработает анимацыя (https://javascript.ru/forum/misc/14289-nerabotaet-animacyya.html)

Matre 10.01.2011 10:45

неработает анимацыя
 
я написал фунцию что бы делать анимацию элемента:

function animaciya(element, parametr, nachalo, konec, vremya) {
hod=konec-nachalo
element.style[parametr]=nachalo
interval=setInterval(function(){
if(nachalo<konec)
uslovie=parseInt(element.style[parametr])>konec;
else
uslovie=parseInt(element.style[parametr])<konec;
if(nachalo>konec)
element.style[parametr] = parseInt(element.style[parametr])-1;
else
element.style[parametr] = parseInt(element.style[parametr])+1;
if(uslovie)
clearInterval(interval);
},vremya/hod);
}


если вызыват
animaciya(document.getElementById("primer"), "height", 20, 0, 1000);
то все хорошо работает
но если вызвать
animaciya(document.getElementById("primer"), "display", "none", "block", 1000);
или с opacity/float,top,left,position,direction
то нерабтает
почему??
в коде ошипка или я вызываю нетак?

monolithed 10.01.2011 12:31

<style type="text/css">
div {
    background: blue;
    position: absolute;
    width: 100px;
    height: 100px;
}
</style>

<script type="text/javascript">
window.onload = function(){
    var i = 0;
    (function(){
        if(++i <= 200){
           document.getElementsByTagName('div')[0].style.left = i+'px';
           setTimeout(arguments.callee, 10);
        }
        else {
            alert('finished');
        }
    })();
};
</script>
<div></div>

Matre 10.01.2011 12:39

и вчом смысл?
у менято display не меняется
а как вы зделали чтобы LEFT менялся???

monolithed 10.01.2011 13:15

Цитата:

Сообщение от Matre
и вчом смысл?

тоже самое хотел спросить у вас, вообще не ясно, что должна выполнять ваша функция...
Цитата:

Сообщение от Matre
у менято display не меняется

поподробней...
Цитата:

Сообщение от Matre
а как вы зделали чтобы LEFT менялся???

так посматрите на код, он очень простой

Matre 10.01.2011 15:58

я не \понимаю 16 строку тамже должна быть бесконечная рекурсия..выбрасывать сообщ в консоли ошибок.

Цитата:

вообще не ясно, что должна выполнять ваша функция...
сначала я вычесляю на сколько надо изменять (hod=konec-nachalo)
присваиваю нач значение
в интервале:
состовляю условие по которому анимация будет завершатся
прибавляю/отнимаю значение на 1
если условие коцна анимации верно,то сбрасываю интервал

Vulkan 10.01.2011 16:58

Matre, чтобы плавно появлялось и угасало меняйте не display, а opacity

monolithed 10.01.2011 17:03

самое главное прочитать как это работает: http://javascript.ru/blog/Andrej-Par...cii-JavaScript

а ту, есть активное обсуждение (и кроссбраузерная функция того примера, что в статье): http://javascript.ru/forum/misc/1367...nimaciejj.html

Matre 10.01.2011 18:46

Vulkan, с opacity тоже нерабоает!!

monolithed, там непонятно..формулы какието.хотелось бы узнать,почему неработает мой способ

Цитата:

а ту, есть активное обсуждение (и кроссбраузерная функция того примера, что в статье)
а что там?
dmitriymar попробовал нерасбодяженый героин?
и говорит ,что анимацыю делают циклом??
ничего хорошего изтой темы не моуг подчерпнуть длясебя

Vulkan 10.01.2011 18:59

Matre, с opacity не работает потому что opacity может содержать значения от 0 до 1, а у тебя единица промежуточная получается 1, то есть для opacity нужно 0.01 или 0.1

dmitriymar 10.01.2011 19:58

Matre,
дятел думай что говоришь .


Часовой пояс GMT +3, время: 03:09.