我遇到的問題是我有一個div,其中有三個隱藏的span標籤(用作標籤)和jquery我使用mouseover函數爲這些標籤之一設置動畫。jquery函數首先需要取消其他函數
我想知道是否有一種方法來停止/取消已經運行的功能。即,如果我快速轉到第二個鼠標懸停事件,動畫似乎排隊,這意味着當我離開時可能會有動畫仍在發生。
理想情況下,新按鈕上的mouseover事件會殺死當前正在運行的動畫。
我遇到的問題是我有一個div,其中有三個隱藏的span標籤(用作標籤)和jquery我使用mouseover函數爲這些標籤之一設置動畫。jquery函數首先需要取消其他函數
我想知道是否有一種方法來停止/取消已經運行的功能。即,如果我快速轉到第二個鼠標懸停事件,動畫似乎排隊,這意味着當我離開時可能會有動畫仍在發生。
理想情況下,新按鈕上的mouseover事件會殺死當前正在運行的動畫。
是:stop
功能。這會停止當前的動畫。
如果你想刪除所有當前排隊的元素,你必須通過第一個參數true
。如果你想跳到當前動畫的結尾(通常是一個好主意),你應該傳遞第二個參數true
。
那麼您的通話將可能看起來有點像這樣:
$('#someEl').mouseenter(function() {
$(this)
.stop(true, true) // stop any currently existing animations
.animate({ // and then start a new one
marginLeft: '20px'
}, 250);
});
在停止所有事情之後,剩下的邊距動畫會發生什麼? – Ben
@Ben是:更新代碼以使其更清晰。 – lonesomeday
謝謝。雖然現在在我的頁面上,它似乎並沒有停止。即我仍然可以穿過他們,當我在第三時間我仍然看到第二個彈出並保持 – Ben
是的,您可以調用.stop()方法停止匹配元素上的任何正在運行的動畫。
是的,有一個在jQuery的一個功能。試試這個:
$('#divId').hover(function() {
$(this).find('#img1').stop(true, true).slideUp();
$(this).find('#img2').stop(true, true).slideDown();
}, function() {
$(this).find('#img1').stop(true, true).slideDown();
$(this).find('#img2').stop(true, true).slideUp();
});
我們可以看到你寫的,所以我們可以用jQuery的幫助一些代碼? –