2010-05-30 6 views
60

Ich möchte das Objekt nach oben, Verzögerung 1000 ms, dann verstecken,Jquery: Wie schlafen oder verzögern?

i erhalten den Code:

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

i „.animate (verwenden { "top": "- = 0px"}, 1000) "Verzögerung zu implementieren, ist es nicht gut.

ich will:

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

irgendeine Idee?

Antwort

95

Wie wäre es mit .delay()?

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

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

Das ist neu zu 1.4. –

+4

Dies funktioniert in diesem Fall, aber ein Thread zu schlafen und einen Effekt zu verzögern sind zwei völlig verschiedene Dinge. jQuery erinnert in seiner Dokumentation sogar daran. – ars265

56

Wenn Sie nicht die delay Methode als Robert Harvey vorgeschlagen verwenden können, können Sie setTimeout verwenden.

Eg.

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