2010-05-30 29 views
60

tôi muốn di chuyển lên đối tượng, 1000ms chậm trễ, sau đó giấu nó,Jquery: làm thế nào để ngủ hoặc chậm trễ?

tôi lấy mã:

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

tôi sử dụng" .animate ({ "top": "- = 0px"}, 1000) "để thực hiện chậm trễ, nó không tốt.

tôi muốn:

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

bất kỳ ý tưởng?

Trả lời

95

Làm thế nào về .delay()?

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

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

Tính năng mới là 1.4. –

+4

Điều này làm việc trong trường hợp này, nhưng nói một sợi ngủ và trì hoãn một hiệu ứng là hai điều hoàn toàn khác nhau. jQuery thậm chí còn nhắc nhở điều này trong tài liệu của họ. – ars265

56

Nếu bạn không thể sử dụng phương pháp delay như Robert Harvey đề nghị, bạn có thể sử dụng setTimeout.

Ví dụ:

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 
Các vấn đề liên quan