2010-07-25 151 views
5

我试图找出这是否可能..我有一个图像地图,确实淡入/淡出基于某些部分悬停..问题是,当用户在淡出期间悬停到不同的区域它完成了它正在做的淡出,然后是鼠标移动到的区域。如果用户在几个不同的区域之间快速移动,那么淡入淡出看起来真的很尴尬,所以我希望能够禁用悬停事件(淡入淡出)期间,另一个淡出正在进行,所以它只是忽略它..Jquery,在淡入/淡出期间禁用/忽略悬停事件?

我想过使用某种延迟,但我不知道这是否可以工作,因为我认为它会推迟淡出..任何意见表示赞赏。

回答

3

我想你指的是queue buildup问题在那里。尝试使用stop方法动画方法如前:

$(...).stop().fadeIn(); 

更多信息:

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

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

+0

谢谢..这有助于,这是我的问题不真正知道正确的术语来搜索这个信息,我会看你给你的inf – Rick 2010-07-25 09:56:26

+0

@Rick:不客气:) – Sarfraz 2010-07-25 09:57:50

8

没有看到您的代码,您的工具是:animated和jQuerys .stop()方法的混合。

这可能看起来像

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

你也可以在你的链中的任何.fadeIn()之前调用.stop(true, true)。这将停止当前的动画并跳转到fx queue的末尾。

参考文献::animated selector.stop().is()

+0

谢谢..我现在想通了,只是不知道什么术语来搜索我猜 – Rick 2010-07-25 10:09:07