2011-03-16 159 views
0

我試圖創建一個使用jQuery的動畫按鈕,應該停止懸停,然後重新啓動時,它不會徘徊。停止並重新啓動懸停在jQuery上的動畫

對於動畫我使用一個循環,如下所示:

$(document).ready(function test() { 
     $('#box').animate({opacity:0.5}, {duration:750}) 
     .animate({opacity:1}, {duration:1500}) 
     .animate({opacity:0.5}, {duration:750, complete: test}) 
     ; 
    }); 

我嘗試添加一個懸停用.stop(),但是,我不知道如何重新啓動動畫。你有什麼建議嗎?

另外,我有這裏的這個一點例如:http://jsfiddle.net/fTpZZ/

回答

2

懸停()事件處理程序可以分別處理handlerIn和handlerOut方法作爲第一和第二參數。

懸停(handlerIn(eventObject)傳遞,handlerOut(eventObject)傳遞)

創建2個獨立的功能 - 一個用於在 「開」 狀態,以及一個用於 「關」

.hover() - jQuery API

1

工作解決方案:(http://jsfiddle.net/fTpZZ/50/

$(document).ready(function() 
    { 
     $('#box').hover(function() {     
      $('#box').stop(); 
      $('#box').animate({opacity:0},1); 
     }); 

     function foo() 
     { 
      $('#box').animate({opacity:0.5}, 750, function(){ 
       $('#box').animate({opacity:1}, 1500, function(){ 
        $('#box').animate({opacity:0.5}, 750, foo());  
       }); 
      });    
     } 

     foo();   
    }); 
+0

您是否能夠重新啓動動畫?它會停止(在我進入和離開幾次後),但不會重新開始。 FF 3.6.x和FF 4.xb – 2011-03-16 17:24:51

+0

我在最新的Chrome,Firefox 3.6和Opera 11中測試過,當我離開該區域時,動畫未重新啓動。除此之外,它效果很好,謝謝! – 2011-03-16 21:55:43