2010-05-30 55 views
60

我想拉昇對象,延遲1000毫秒,然後隱藏它,jquery:如何睡覺或延遲?

我得到的代碼:

$("#test").animate({"top":"-=80px"},1500) 
     .animate({"top":"-=0px"},1000) 
     .animate({"opacity":"0"},500); 

我使用」 .animate({ 「頂」: 「 - = 0像素」}, 1000)「來執行延遲,這並不好。

我想:

$("#test").animate({"top":"-=80px"},1500) 
     .sleep(1000) 
     .animate({"opacity":"0"},500); 

什麼想法?

回答

95

.delay()怎麼樣?

http://api.jquery.com/delay/

$("#test").animate({"top":"-=80px"},1500) 
      .delay(1000) 
      .animate({"opacity":"0"},500); 
+3

這是新的1.4。 – 2010-05-30 19:35:59

+4

這在這種情況下工作,但告訴線程睡覺和延遲效果是兩個完全不同的事情。 jQuery甚至在他們的文檔中提醒了這一點。 – ars265 2011-10-18 00:29:38

56

如果您不能使用delay方法羅伯特·哈維的建議,您可以使用setTimeout

例如,

setTimeout(function() {$("#test").animate({"top":"-=80px"})} , 1500); // delays 1.5 sec 
setTimeout(function() {$("#test").animate({"opacity":"0"})} , 1500 + 1000); // delays 1 sec after the previous one