Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как организуется очередь .animate (https://javascript.ru/forum/jquery/21385-kak-organizuetsya-ochered-animate.html)

Beriagts 07.09.2011 15:46

Как организуется очередь .animate
 
Дайте пример для двух анимации, а то немного не пойму :
1. .animate(top)
1. .animate(left)

melky 07.09.2011 15:53

сначала будет первая, потом вторая. что непонятного?

Beriagts 07.09.2011 15:58

у меня они вместе происходят, а надо типа сначала заканчивается одна потом вторая

melky 07.09.2011 16:02

<div style="position:absolute; top:0;left:0;">olo</div>

<script src="http://yandex.st/jquery/1.6.3/jquery.min.js"></script>
<script>
$("div").animate({top:100}, 1000).animate({left:300}, 1000)
</script>


если же элементов несколько, то надо делать через отложенные вызовы

<div style="position:absolute; top:0;left:0;padding:5px;border: 2px green solid" id="a">A</div>
<div style="position:absolute; top:0;left:0;padding: 5px; border: 2px red solid;" id="b">B</div>

<script src="http://yandex.st/jquery/1.6.3/jquery.min.js"></script>
<script>

$("#a").animate({top:100}, 1000).animate({left:300}, 1000,"linear", function(){ 
   $("#b").animate({top:100}, 1000).animate({left:300}, 1000)
});

</script>


в мануалах всё написано

kadabrik 07.09.2011 16:04

Очередь построится только если ты оба animate применишь к одному и тому же елементу. Для того чтобы второй animate выполнился после первого, если они применены для разных элементов, вызови его в callback функции первого animate.

Beriagts 07.09.2011 16:05

понял что не много недописал
$('div1').animate(top)
$("div2").animate(left)

kadabrik 07.09.2011 16:07

$('div1').animate({top: 100},function(){$("div2").animate({left: 100})})


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