连续动画问题即使被徘徊

时间:2011-05-17 07:28:22

标签: jquery

我有一个按钮,在悬停时会淡化div。 如果我将鼠标悬停在一个按钮上,然后将鼠标悬停在快速连续多次重复该过程然后将其悬停,则div将在应该停止时继续动画。 请参阅以下代码段。

http://jsfiddle.net/arvinboggs/uenEQ/9/

有没有办法纠正这种行为?

有没有办法在最终悬停时停止动画?

2 个答案:

答案 0 :(得分:2)

是的。您需要.stop()再次.animate()http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup。否则,您将构建一个必须出列的动画队列。

答案 1 :(得分:1)

从我以前的答案剪切并粘贴到类似的问题:

我实际创建了一个'state'变量,以确保任何时候只能触发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
});