2012-04-17 161 views
0

我感興趣的jQuery .animate無限循環破解方法的解決方案。.animate無限循環

$(element).mouseover(function() { 
    $(this).animate({ opacity: 1 }, duration, customFunc); 
}).mouseout(function() { 

}); 

現在問題是如何打破這個循環?例如在mouseout事件中?

我可以setIntervalclearInterval容易做,但有沒有辦法把它與.animate功能?

+3

我在代碼中看不到無限循環(或任何循環)。你能否更詳細地解釋你想要做什麼? – nnnnnn 2012-04-17 22:53:27

+0

不管其他選項如何,只需在'mouseout'事件中調用'clearInterval'即可。 – 2012-04-17 22:54:04

+0

我同意nnnnnn,無限循環在哪裏,除非這個代碼在一個內部? – 2012-04-17 22:54:30

回答

4

使用.stop方法:

http://api.jquery.com/stop/

我假設你要立即停止當前正在運行的動畫?

$(element).mouseover(function() { 
    $(this).animate({ opacity: 1 }, duration, customFunc); 
}).mouseout(function() { 
    $(this).stop(); 
}); 
1

你可以使用.stop()

http://api.jquery.com/stop/

您可能需要使用.stop(真實的,真實的)來清除隊列並跳轉到動畫的結尾停止動畫

可以使用。數據()來存儲一個標誌,如果你要製作動畫再

http://api.jquery.com/jQuery.data/

在customFunc添加如果調用再次動畫來檢查你是否應該動畫前旗。這樣你就不會因其他回調而反彈。在您的鼠標懸停中,您應該將該標誌設置爲再次啓用。

0

如果你遇到的是在動畫排隊爲您的鼠標進入並多次離開元素,並繼續在和動畫的重複數次後您的鼠標離開元素,而不是返回的效果 - 我會爲你推薦jquery hoverflow插件。

http://www.2meter3.de/code/hoverFlow/