2011-11-04 176 views
1

我有一个菜单导航区域,我使用.animate在文字悬停时滑动,然后滑动它回来时,徘徊。我希望能够在鼠标悬停在选项卡上时立即停止幻灯片动画。我怎样才能做到这一点?JQuery Animate - 如何尽快停止悬停功能(不完成悬停功能)

$('a.menu').hover(
    function(){ 
     if(!$(this).hasClass('current')) 
      $(this).animate({'padding-right': '+=10'}); 
    }, 
    function(){ 
     if(!$(this).hasClass('current')) 
      $(this).animate({'padding-right': '-=10'}); 
    }  
); 

回答

2

使用stop()方法

$('a.menu').hover(
    function(){ 
     if(!$(this).hasClass('current')) 
      $(this).stop().animate({'padding-right': '+=10'}); 
    }, 
    function(){ 
     if(!$(this).hasClass('current')) 
      $(this).stop().animate({'padding-right': '-=10'}); 
    }  
); 
+0

好的那种作品。唯一的问题是如果它在达到+ = 10px之前悬停,那么悬停关闭功能仍然会移除10px。 (即如果文本达到+ 6像素,我悬停,悬停关闭功能仍然向右移动10px,而不是6) – JimmyJammed

+0

嗯......你还在做其他事情吗?因为'padding:-n'被视为'padding:0'。 (你不能在CSS中有负填充)。例如:http://jsfiddle.net/XFbf5/ –

+0

没关系,它在下面得到了回答。谢谢! – JimmyJammed

1

可以使用stop方法停止动画,但不会与相对值很好地工作。您需要将它们更改为绝对值,以便您不会中途阻止它们,然后再回到起始值。

+0

甜!这在使用.stop()后纠正了我的第二个问题。谢谢! – JimmyJammed