2012-01-13 82 views
0

我遇到animate()函數的問題。我想先創建2個對象的動畫,然後等待4秒鐘並再次爲該對象設置動畫。我的代碼是這樣的:一次jquery動畫兩個類

//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後。它正在執行,但我想一次爲這兩個類設置動畫。有沒有解決方法?謝謝...

+0

你可以包括你的HTML和CSS,或工作的例子嗎?似乎對我很好http://jsfiddle.net/6fms5/ – 2012-01-13 19:18:22

回答

0

使用隊列:假

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

這是在同一個元素上同時運行兩個動畫。他只是試圖在兩個不同的元素上同時運行動畫。 – 2012-01-13 19:22:03