JQuery оживить два класса одновременно - PullRequest
0 голосов
/ 13 января 2012

У меня проблема с функцией animate(). Я хочу сначала оживить 2 объекта, затем подождать 4 секунды и снова оживить этот объект. Мой код такой:

//Animation In
$('.show').animate({marginTop : '1px' , opacity: '1px'},1000).delay(4000);
$('.caption').animate({opacity : '1px', top : '20px'},1000).delay(4000);       

//After 4 Second Animation Out       
$('.show').animate({ marginTop : '-200px', opacity:'0px'},1000);
$('.caption').animate({opacity : '0px' , top : '70px'},500,function()
   {         
                fadeInwhipe();// calls This Function
   });

Это прекрасно работает для класса .show, но иногда .caption анимируется очень быстро до .show. Я попытался установить .caption в функцию обратного вызова .show, чтобы предотвратить раннюю анимацию .caption, например:

//Animation In
$('.show').animate({marginTop : '1px' , opacity: '1px'},1000).delay(4000);
$('.caption').animate({opacity : '1px', top : '20px'},1000).delay(4000);       

//After 4 Second Animation Out       
$('.show').animate({ marginTop : '-200px', opacity:'0px'},1000 ,function(){
    $('.caption').animate({opacity : '0px' , top : '70px'},500,function()
      {         
                fadeInwhipe();// calls This Function
      });
);

Но в этом случае он оживляется после завершения .show. Это выполняется, но я хочу оживить оба класса одновременно. Есть ли решение? Спасибо ...

1 Ответ

0 голосов
/ 13 января 2012

Использовать очередь: ложь

$(function () {
    $("#first").animate({
       width: '200px'
    }, { duration: 200, queue: false });
    $("#first").animate({
       marginTop: '50px'
    }, { duration: 200, queue: false });
});
...