2011-11-22 69 views
0

他的傢伙......jQuery的.animate與timefunction

我用這個豆蔻代碼片段的jQuery:

function updown() { 
    $('#red').animate({top:'+=100'}, 5000, function() { 
     $('#red').animate({top:'-=100'},5000, function(){ 
      updown(); 
     }); 
    }); 
} 

updown(); 

(用於移動到右邊我使用興致)

,並得到這樣的結果:

result

,但我想它是這樣的:

wish

有沒有辦法認識到這一點?

問候, bernte

回答

1

當然,你可以使用jQuery delay()或Javascript的setTimeout,這裏是前者:

function updown() { 
    $('#red').delay(7000).animate({top:'+=100'}, 5000, function() { 
     $('#red').delay(3000).animate({top:'-=100'},5000, function(){ 
      updown(); 
     }); 
    }); 
} 
+0

偉大的人!謝謝!! :d – bernte

0
function updown() { 
    $('#red').delay(3000).animate({top:'+=100'}, 5000, function() { 
     $('#red').delay(7000).animate({top:'-=100'},5000, updown}); 
    }); 
} 

updown(); 

延遲是你想要的。如上例所示,調用解析在執行下一個動畫請求之前要等待的時間。謹防它,延遲只適用於動畫。例如:

$("#red").delay(1000).css("display", "none"); 

將立即調用.css(),而不是在1000 ms後調用。