2012-04-11 61 views
0

我試圖讓我的內容DIV的動畫首先淡出,然後停在此淡出階段,並且只排隊淡入以便.dequeue()可以一旦我動態加載內容(可能通過ajax),稍後再調用它。jQuery/Effects/.delay()&.stop()功能

$content.fadeTo(1000,0.0).delay(1000).stop().fadeTo(1000, 1) 

我有兩個問題 -

  1. 我淡出立即發生,不褪色1秒。
  2. stop()函數不會阻止任何動畫直接穿過的任何東西。

我失去了什麼?

回答

0

有幾個問題:

$content.fadeTo(1000,0.0)將淡出你的DIV在1秒(你可以使用.fadeOut(1000),如果你願意的話)。

那麼,什麼.delay()確實是戴利您提供毫秒subsecuent動畫的執行,所以,如果你做

$content.fadeOut(1000).delay(300).fadeIn();將淡出在持續1秒的動畫股利,等待300毫秒,然後褪去了DIV回。

到目前爲止好,但什麼.stop()確實是停止動畫匹配的元素,讓你的fadeTo將無法​​運行,它不排隊的事情。然後當你做.fadeTo(1000, 1)(相當於.fadeIn(1000))div已經可見,所以它什麼都不做。

我建議你這樣做:

$content.fadeOut(1000); 

//Later in the code 
$.ajax({ 
//... 
success: function() { 
    //code.. 
    $content.fadeIn(1000); 
}); 

但是,如果你要排隊的動畫,你可以使用.queue()dequeue()