Понимание очередности эффектов jQuery - PullRequest
0 голосов
/ 18 ноября 2010

Я пытаюсь запустить один эффект / анимацию jQuery за другим. Я пробовал это:

$('#myDiv').animate({'left':'+=300'},1000).delay(2000).animate({'left':'-=300'},1000);

EDIT:

Это на самом деле работает - просто ошибка вставки с моей стороны. Цепные эффекты автоматически создают очередь, в соответствии с документами , что нам и нужно:

$('#foo').slideUp().fadeIn();

Когда выполняется этот оператор, элемент начинает скользящую анимацию сразу, но затухающий переход помещается в очередь FX для вызова только когда скользящий переход полный.

(спасибо за помощь, не дадите удалить вопрос)

Ответы [ 3 ]

0 голосов
/ 18 ноября 2010

Это можно сделать двумя способами: с помощью параметра callback для анимации и queues .

0 голосов
/ 18 ноября 2010

Вы установили position: absolute; (или relative, в зависимости от того, что хотите) в div?Если вы этого не сделали, анимация left ничего не сделает.Вот рабочий пример: http://jsfiddle.net/vftNF/

0 голосов
/ 18 ноября 2010

jQuery animate () имеет параметр обратного вызова

, с его помощью вы можете сделать это

$('#myDiv').animate({'left':'+=300'},1000, function () {
   //Start Next Animation
   $(this).animate({'left':'-=300'},1000, function () {
     //Start Next animation
   });
})
...