2011-11-04 191 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