2011-06-28 59 views
1

你好,我仍然不知道如何stop()的作品。它會停止對象上的所有當前動畫嗎?我怎樣才能重置所有的狀態,並做下一個動畫?它發生的情況是,如果快速進行時,如果在鼠標懸停/退出時淡入/淡出,則會發生動畫停止在淡出的一半並且下一次該對象將不再顯示的時間。jquery和stop()

 //show delete link on hover 
    $('li.dir').live('mouseover mouseout', function(event) { 
      if (event.type == 'mouseover') { 
      $(this).find("span.delete_file").delay(800).fadeIn('fast'); 
      } 
      else{ 
      $(this).find("span.delete_file").fadeOut('fast'); 
      } 
    }); 

HTML

<li class="dir" title=""> 
        <span class="pin"></span> 
        <span class="name">test</span> 
        <span class="delete_file" title="/test"></span> 
         <ul class="sub_folder"> 
         </ul> 

       </li> 

如何以及在哪裏我應該把停止(),所以,當我走在li.dir的.delete_file淡入但在相同的時間將鼠標從停止一切!它嘗試使用stop()show()hide()函數來玩,但是總是發生,如果我將鼠標移動並快速移出,動畫「fadeIN」會從最後一次設置重新開始,可以是從100%到0%不透明度(完全無法顯示)

回答

0

你需要說:

$(this)....stop(true, true).fadeTo(1).fadeOut("fast"); 

$(this)....stop(true, true).fadeTo(0).fadeIn("fast"); 
+0

它顯示相同的問題 –

0

This demo應該做你想要什麼。我改變了選擇器,以創建更傳統的.mouseenter().mouseleave()組合。如果你需要delay()它可以加回去。演示正在爲我工​​作,沒有它。

.stop()傾向於在調用動畫效果之前調用,從而在啓動另一個動畫效果之前停止正在運行的動畫。