2012-03-04 72 views
0

當我在籃子(#cart_block_top)上盤旋時,並且沒有等待動畫的結尾突然將它從籃子中移出,動畫仍然會突然快速結束,只有這樣向上滑動。 下面是代碼:jQuery slideToggle行爲

$('#cart_block_top').hover(function() { 
    $("#cart_block_slide_content").stop(false, true).slideToggle('slow'); 
}); 

這裏是鏈接:http://layot.prestatrend.com/ 任何人幫助嗎?

回答

0

你也可以使用一個callback爲了當動畫完成後知道,並調用

$("#cart_block_slide_content").stop(false, true).slideToggle('slow'); 

只有當正在進行中沒有動畫。

Quoting Jquery

.slideToggle([時間] [,回調])

duration一個字符串或數字決定動畫將運行多久。

callback動畫完成後調用的函數。

例如:

var isAnimationCompleted = true; 

function onAnimationCompleted(){ 
    isAnimationCompleted = true; 
} 

$('#1').hover(function(){ 
    if (isAnimationCompleted){ 
     $("#div").stop(false, true).slideToggle('slow',onAnimationCompleted); 
     isAnimationCompleted = false; 
    } 
}); 

JSFiddle live example

+0

這不是我想要的... – 2012-03-04 19:07:36

0

.stop()有兩個布爾值,第一是否應該清除隊列,在這裏你有假的。其次是如果它應該jumptoend,你已經設置爲true,所以當你停止該功能時,它將跳轉到動畫的結尾。試試這個,並不完美,但看起來更好。

$("#cart_block_slide_content").stop().slideToggle(1000); 
+0

不要工作.... – 2012-03-04 19:07:19