Update: Ab jQuery 1.4 können Sie die .delay( n )
Methode verwenden. http://api.jquery.com/delay/
$('.notice').fadeIn().delay(2000).fadeOut('slow');
Hinweis : $.show()
und sind $.hide()
standardmäßig nicht in der Warteschlange. Wenn Sie sie also verwenden möchten $.delay()
, müssen Sie sie folgendermaßen konfigurieren:
$('.notice')
.show({duration: 0, queue: true})
.delay(2000)
.hide({duration: 0, queue: true});
Sie könnten möglicherweise die Warteschlangensyntax verwenden, dies könnte funktionieren:
jQuery(function($){
var e = $('.notice');
e.fadeIn();
e.queue(function(){
setTimeout(function(){
e.dequeue();
}, 2000 );
});
e.fadeOut('fast');
});
oder Sie könnten wirklich genial sein und eine jQuery-Funktion erstellen, um dies zu tun.
(function($){
jQuery.fn.idle = function(time)
{
var o = $(this);
o.queue(function()
{
setTimeout(function()
{
o.dequeue();
}, time);
});
};
})(jQuery);
was Ihnen (theoretisch hier an der Erinnerung arbeiten) erlauben würde, dies zu tun:
$('.notice').fadeIn().idle(2000).fadeOut('slow');
Ich habe es gerade unten herausgefunden:
Ich werde den Beitrag für andere Benutzer behalten!
quelle
Toller Hack von @strager. Implementieren Sie es wie folgt in jQuery:
Und dann benutze es als:
quelle
Sie können so etwas tun:
Leider können Sie nicht einfach .animate ({}, 2000) ausführen - ich denke, dies ist ein Fehler und werde ihn melden.
quelle
Ben Alman hat ein süßes Plugin für jQuery namens doTimeout geschrieben. Es hat viele schöne Funktionen!
Probieren Sie es hier aus: jQuery doTimeout: Wie setTimeout, aber besser .
quelle
Um es so verwenden zu können, müssen Sie zurückkehren
this
. Ohne die Rückgabe erhält fadeOut ('slow') kein Objekt, mit dem diese Operation ausgeführt werden kann.Dh:
Dann mach das:
quelle
Dies kann mit nur wenigen Zeilen jQuery erfolgen:
Ein funktionierendes Beispiel finden Sie in der Geige unten ...
http://jsfiddle.net/eNxuJ/78/
quelle