Ich versuche, einen Effekt zu erzeugen, bei dem die Seite geladen wird und nach 5 Sekunden die Erfolgsmeldung auf dem Bildschirm ausgeblendet wird oder nach oben gleitet.
Wie kann ich das erreichen?
Ich versuche, einen Effekt zu erzeugen, bei dem die Seite geladen wird und nach 5 Sekunden die Erfolgsmeldung auf dem Bildschirm ausgeblendet wird oder nach oben gleitet.
Wie kann ich das erreichen?
Eingebautes Javascript setTimeout .
setTimeout(
function()
{
//do something special
}, 5000);
UPDATE : Sie wollen warten, bis die Seite fertig geladen ist, also fügen Sie diesen Code in Ihre $(document).ready(...);
Drehbuch.
UPDATE 2 jquery 1.4.0 führte die .delay
Methode. Überprüfen Sie es . Beachten Sie, dass .delay nur mit den jQuery-Effekt-Warteschlangen funktioniert.
Verwenden Sie einen normalen Javascript-Timer:
$(function(){
function show_popup(){
$("#message").slideUp();
};
window.setTimeout( show_popup, 5000 ); // 5 seconds
});
Damit wird 5 Sekunden gewartet, nachdem das DOM fertig ist. Wenn Sie warten wollen, bis die Seite tatsächlich fertig ist loaded
müssen Sie dies verwenden:
$(window).load(function(){
function show_popup(){
$("#message").slideUp();
};
window.setTimeout( show_popup, 5000 ); // 5 seconds
})
EDITAR: Als Antwort auf den Kommentar des OPs, der fragte, ob es eine Möglichkeit gibt, dies in jQuery zu tun und nicht zu verwenden setTimeout
lautet die Antwort nein. Aber wenn Sie es mehr "jQueryish" machen wollte, könnten Sie es wie folgt verpacken:
$.wait = function( callback, seconds){
return window.setTimeout( callback, seconds * 1000 );
}
Sie könnten sie dann so aufrufen:
$.wait( function(){ $("#message").slideUp() }, 5);
Ich stieß auf diese Frage und dachte, ich würde ein Update zu diesem Thema bereitstellen. jQuery (v1.5+) enthält eine Deferred
Modell, das (obwohl er sich nicht an die Versprechen/A Spezifikation bis jQuery 3) wird im Allgemeinen als klarerer Weg angesehen, um viele asynchrone Probleme anzugehen. Die Implementierung einer $.wait()
Methode mit diesem Ansatz ist meiner Meinung nach besonders gut lesbar:
$.wait = function(ms) {
var defer = $.Deferred();
setTimeout(function() { defer.resolve(); }, ms);
return defer;
};
Und hier ist, wie Sie es verwenden können:
$.wait(5000).then(disco);
Wenn Sie jedoch nach dem Anhalten nur Aktionen für eine einzelne jQuery-Auswahl durchführen möchten, dann müssen Sie debe die native jQuery-Funktion verwenden .delay()
die, wie ich glaube, auch Deferred's unter der Haube verwendet:
$(".my-element").delay(5000).fadeIn();
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.