Jquery,在淡入/淡出期间禁用/忽略悬停事件?

Ric*_*ick 5 jquery hover fadein

我试图找出这是否可能..我有一个图像映射,根据悬停在某些部分上淡入/淡出..问题是当用户在淡入淡出期间徘徊到不同的区域时它完成它正在做的淡入淡出然后是鼠标移动到的区域的那个.如果用户在几个不同的区域之间快速移动,那么淡入淡出看起来非常跳跃和笨拙,所以我希望能够禁用悬停事件(在另一次淡入淡出的过程中,它会忽略它.

我曾考虑使用某种延迟,但我不知道这是否可行,因为我认为它会延迟淡化...任何建议都值得赞赏.

jAn*_*ndy 8

如果没有看到您的代码,您的工具就是:animatedjQuerys .stop()方法的混合体.

这可能看起来像

$('imagemap').hover(function(){
   // only do something if no animation is in process (like fading)
   if(!$(this).is(':animated')){
   }
}, function(){
});
Run Code Online (Sandbox Code Playgroud)

您也可以在链中的.stop(true, true)任何一个之前打电话.fadeIn().这将停止当前动画并跳转到结束fx queue.

参考文献::动画选择,.stop() ,.是()


Sar*_*raz 3

我认为你指的是那里的队列堆积问题。stop尝试在动画方法之前使用该方法,例如:

$(...).stop().fadeIn();
Run Code Online (Sandbox Code Playgroud)

更多信息:

http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup

至于流畅的动画,你可以使用jQuery Easing Plugin