2013-03-23 69 views
0

我有一招動畫是這樣工作的:停止jQuery的動畫和倒車

function showMessage() 
{ 
    $('#message').stop().show().animate({top: '60px'}, 500, 'easeOutExpo'); 
}  

function hideMessage(msg,hide) 
{ 
    $('#message').stop().delay(time).animate({ top: '0px' }, 600, 'easeInExpo'); 
}   

動畫所示移動時,60PX一個項目,然後再回來時,它隱藏爲0px。問題是如果showMessage在hideMessage完成之前啓動,我會得到一個醜陋的跳轉動畫。

我想要的是,showMessage動畫如果在hideMessage完成之前啓動,則基本上會顛倒hideMessage動畫。

我希望這是有道理的。

回答

2

你要確保動畫完成後,會開始B.

$('#message').stop(true,true).show(); 

這是說.stop之前([clearQueue] [,jumpToEnd])。 Here's the documentation.

您近距離了! Fiddle

+0

您的解決方案更好,所以我會接受答案,但它仍然不完美。它從0px的起點觸發showMessage動畫,反對停止hideMessage(無論它在動畫過程中的哪個位置)並移回到60px。我不確定我的要求甚至可能... – Andrew 2013-03-23 20:50:47