2012-03-04 71 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