我有一個按鈕會在盤旋時淡化分區。 如果我將鼠標懸停在某個按鈕上,然後將鼠標懸停並快速連續多次重複該過程,然後將鼠標懸停在外,此時div應該停止動畫。 請參閱以下代碼片段。即使徘徊,也會出現連續動畫問題
http://jsfiddle.net/arvinboggs/uenEQ/9/
是否有辦法來糾正這種行爲?
有沒有辦法阻止最終懸停的動畫?
我有一個按鈕會在盤旋時淡化分區。 如果我將鼠標懸停在某個按鈕上,然後將鼠標懸停並快速連續多次重複該過程,然後將鼠標懸停在外,此時div應該停止動畫。 請參閱以下代碼片段。即使徘徊,也會出現連續動畫問題
http://jsfiddle.net/arvinboggs/uenEQ/9/
是否有辦法來糾正這種行爲?
有沒有辦法阻止最終懸停的動畫?
剪切並粘貼從我的前面回答過類似的問題:
其實我創造一個「狀態」變量,以確保只有1動作可以發射在任何時間。
我做的是
set state = 0; when I initialise the page
check if state == 0 when something is clicked
if it's 0, then I set it to 1 (meaning something's happening)
run the animation
once the animation is complete, I reset the state to 0
實際上,你只能觸發動畫的事件是狀態== 0,然後有沒有重疊。
因此,要回答你的問題,當您綁定()懸停,需要檢查是否是允許的火動畫或不基於狀態設置。
var hoverState = 0;
$('.myLink').bind('mouseenter'), function(){
myHoverCode();
});
function hoverCode(){
if(hoverState == 0){
hoverState = 1; // bind this hover state so we can't trigger it again
// do my animation
$('#someElement').animate({
},100, function(){
// animation complete
hoverState = 0; // reset the hover state
});
是的。您需要.stop()
之前再.animate()
:http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup。否則,你建立一個需要出隊的動畫隊列。
是否停止讓它完成序列或「銷燬」事件?如果它停止在軌道上,我仍然更喜歡我的「檢查狀態」答案,因爲它允許順序很好地完成。 – niggles 2011-05-17 07:35:59
@niggles不完全確定。我只知道這就是我讀過的每個資源(主要來自Sitepoint,公平地說)如何去做。以下是API參考資料:[http://api.jquery.com/stop/](http://api.jquery.com/stop/) – 2011-05-17 07:42:50
查看文檔,它停止了它的位置。我需要它的很多東西都必須到達終點,以便與設計一起工作,例如幻燈片放映在幻燈片中的正確圖像上。通過綁定縮略圖點擊大圖像條移動到它應該在的位置,但不會獲得多次點擊。 stop()會讓它完成一半。 – niggles 2011-05-17 07:49:51