2009-12-23 63 views
0

我在本教程考慮看看這裏,以防止動畫建隆:jQuery - 如何防止動畫隊列與雙動畫累積?

http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup

我的情況: 我下面做了雙動畫這樣的,並希望阻止動畫建立。由於我有2個動畫,它似乎忽略了.stop()。可以做些什麼來防止這種情況?我已經嘗試.stop()兩個.animate,如果我這樣做,它會停止動畫...

$(document).ready(function() { 
$('#element').hover(function() { 
    $(this).stop() 
     .animate(
      { left: 200 }, { 
       duration: 'slow', 
      }) 
     .animate(
      { top: 200 }, { 
       duration: 'slow', 
      }); 
} , function() { 
    $(this).stop() 
     .animate(
      { left: 0 }, { 
       duration: 'slow', 
      }) 
     .animate(
      { top: 0 }, { 
       duration: 'slow', 
      }); 
}); 

});

任何幫助將大大aprecaited!

回答

9

用途:

$(this).stop(true); 

stop()

停止所有當前正在運行的 動畫在所有指定 元素。

注意:「正在運行」未排隊,正如您所遇到的。對於提供參數:

clearQueue (Optional) Boolean 

布爾(真/假),當設置 爲true清除動畫隊列, 有效地停止所有排隊的 動畫。

此外,您可以提供第二個參數,該參數將快捷動畫完成,而不是取消它,如果有幫助。