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 dies 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 Ihr $(document).ready(...);
Skript ein.
UPDATE 2: jquery 1.4.0 hat die Methode .delay
eingeführt. Check it out. 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
});
Dies wird 5 Sekunden warten, nachdem das DOM bereit ist. Wenn Sie warten wollen, bis die Seite tatsächlich "geladen" ist, müssen Sie dies verwenden:
$(window).load(function(){
function show_popup(){
$("#message").slideUp();
};
window.setTimeout( show_popup, 5000 ); // 5 seconds
})
EDIT: Als Antwort auf den Kommentar des Autors, der fragte, ob es eine Möglichkeit gibt, dies in jQuery zu tun und nicht setTimeout
zu verwenden, lautet die Antwort nein. Aber wenn man es mehr jQuery-mäßig machen möchte, könnte man es so verpacken:
$.wait = function( callback, seconds){
return window.setTimeout( callback, seconds * 1000 );
}
Sie könnten es dann wie folgt aufrufen:
$.wait( function(){ $("#message").slideUp() }, 5);
Die Underscore-Bibliothek bietet auch eine "delay" Funktion:
_.delay(function(msg) { console.log(msg); }, 5000, 'Hello');