2013-01-21 26 views
0

我見過一些其他 - 半相關的帖子 - 但沒有真正100%回答我的問題。jQuery動畫停止/恢復技術或模式

在任何情況下,我想要做的就是暫停+淡入在懸停,暫停+淡出過程中,這樣動畫不會完成,除非用戶保持懸停或懸停選擇。如果用戶做了一堆快速懸停和盤旋,我不希望它排隊一連串的連續動畫。我已經使用stop()和clearQueue()關閉了,但是有問題。

如果我將鼠標懸停,hoverOut並再次快速懸停,動畫會暫停但不會轉換到下一個動畫。事實上,足夠的懸停和懸停空間會導致動畫在我的電腦上完全停止。

查看下面的示例頁面和附加的腳本。也許對這個問題有一個共同的模式或方法?我看到類似的事情在網上完成了很多,有時與淡出的動畫,有時與動畫動畫等。

在這個例子中,我故意使用一個慢動畫時間,所以你有時間懸停和進出足夠多的時間。

演示: http://ficreates.com/_SiteDemos/lwv2/

腳本: http://ficreates.com/_SiteDemos/lwv2/scripts/carNav.js

總之,在此先感謝任何幫助,您可以給我:)我肯定需要它!

回答

1

這是你在找什麼?

function carNav() { 
     var $navBox = $("#nav_buttons li"); 

     $navBox.hover(
      function() { 
       var $navCar = $(this).find(".nav_car"); 
       $navCar.fadeIn(2000); 
      }, 
      function() { 
       var $navCar = $(this).find(".nav_car");     
       $navCar.stop().fadeOut(2000); 
      } 
     ); 
    } 

    $(document).ready(carNav); 

DEMOhttp://jsfiddle.net/m2pF5/

,或者你可以做到這一點完全與CSS,(將需要即後備)

CSS DEMOhttp://jsfiddle.net/eNJ6x/1/

+0

我注意到,如果您執行以下步驟: 懸停 懸停輸出 –

+0

你注意到了什麼? – Fresheyeball

+0

對不起,我在完成之前發佈。如果你懸停,hoverOut並再次懸停,它仍然無限期地凍結動畫。你發佈的代碼是一個改進(謝謝),但奇怪的凍結仍然發生......我不太清楚爲什麼。 –