Ich versuche, einen Effekt zu erzielen, bei dem die Seite geladen wird. Nach 5 Sekunden wird die Erfolgsmeldung auf dem Bildschirm ausgeblendet oder nach oben verschoben.
Wie kann ich das erreichen?
Eingebautes Javascript setTimeout .
setTimeout(
function()
{
//do something special
}, 5000);
UPDATE : Sie möchten warten, bis die Seite vollständig geladen ist. Fügen Sie diesen Code in Ihr $(document).ready(...);
Skript ein.
UPDATE 2 : jquery 1.4.0 führte die .delay
Methode ein. Schau es dir an . Beachten Sie, dass .delay nur mit den jQuery-Effektwarteschlangen funktioniert.
setTimeout
.Verwenden Sie einen normalen Javascript-Timer:
Dies wartet 5 Sekunden, nachdem das DOM bereit ist. Wenn Sie warten möchten, bis die Seite tatsächlich
loaded
angezeigt wird, müssen Sie Folgendes verwenden:BEARBEITEN: Als Antwort auf den Kommentar des OP lautet die Frage, ob es eine Möglichkeit gibt, dies in jQuery zu tun und
setTimeout
die Antwort nicht zu verwenden , Nein. Aber wenn Sie es "jQueryish" machen wollten, könnten Sie es so einpacken:Man könnte es dann so nennen:
quelle
Ich bin auf diese Frage gestoßen und dachte, ich würde ein Update zu diesem Thema bereitstellen. jQuery (v1.5 +) enthält ein
Deferred
Modell, das (obwohl es sich bis jQuery 3 nicht an die Promises / A- Spezifikation hält) allgemein als klarere Möglichkeit zur Lösung vieler asynchroner Probleme angesehen wird. Die Implementierung einer$.wait()
Methode mit diesem Ansatz ist meiner Meinung nach besonders lesbar:Und so können Sie es verwenden:
Wenn Sie jedoch nach dem Anhalten nur Aktionen für eine einzelne jQuery-Auswahl ausführen möchten, sollten Sie jQuerys native verwenden, von
.delay()
der ich glaube, dass sie auch Deferreds unter der Haube verwendet:quelle
Platzieren Sie Ihren Code in der
{ }
usw.
quelle
Ich habe dieses für eine Nachrichtenüberlagerung verwendet, die sofort beim Klicken geschlossen werden kann, oder es wird nach 10 Sekunden automatisch geschlossen.
quelle
.delay()
und es kann verschachtelt werdenDie Unterstreichungsbibliothek bietet auch eine "Verzögerungs" -Funktion:
quelle
Basierend auf Joeys Antwort habe ich eine beabsichtigte Lösung gefunden (von jQuery, lesen Sie über 'Warteschlange').
Es folgt etwas der Syntax jQuery.animate () - ermöglicht die Verkettung mit anderen FX-Funktionen, unterstützt 'slow' und andere jQuery.fx.speeds und ist vollständig jQuery. Und wird genauso behandelt wie Animationen, wenn Sie diese stoppen.
jsFiddle-Testgelände mit mehr Verwendungszwecken (wie das Vorführen von .stop ()) finden Sie hier .
Der Kern der Lösung ist:
das Ganze als Plugin, das die Verwendung von $ .wait () und $ (..) unterstützt. wait ():
Hinweis: Da wait zum Animationsstapel hinzugefügt wird, wird $ .css () sofort ausgeführt - wie angenommen: erwartetes jQuery-Verhalten.
quelle
quelle
Erkenne, dass dies eine alte Frage ist, aber ich habe ein Plugin geschrieben, um dieses Problem zu beheben, das jemand nützlich finden könnte.
https://github.com/madbook/jquery.wait
können Sie dies tun:
quelle