Jeg forsøger at skabe en effekt, hvor siden indlæses, og efter 5 sekunder forsvinder succesmeddelelsen på skærmen eller glider opad.
Hvordan kan jeg opnå dette?
Indbygget i javascript setTimeout.
setTimeout(
function()
{
//do something special
}, 5000);
UPDATE: du vil vente, siden siden siden er færdig med at indlæse, så sæt denne kode ind i dit script $(document).ready(...);
.
UPDATE 2: jquery 1.4.0 introducerede metoden .delay
. Tjek det ud. Bemærk, at .delay kun fungerer med jQuery-effektkøerne.
Brug en normal javascript-timer:
$(function(){
function show_popup(){
$("#message").slideUp();
};
window.setTimeout( show_popup, 5000 ); // 5 seconds
});
Dette vil vente 5 sekunder efter at DOM er klar. Hvis du ønsker at vente, indtil siden faktisk er loaded
, skal du bruge dette:
$(window).load(function(){
function show_popup(){
$("#message").slideUp();
};
window.setTimeout( show_popup, 5000 ); // 5 seconds
})
EDIT: Som svar på OP's kommentar, der spørger, om der er en måde at gøre det i jQuery og ikke bruge setTimeout
, er svaret nej. Men hvis du ville gøre det mere "jQueryish" du kunne pakke det sådan her:
$.wait = function( callback, seconds){
return window.setTimeout( callback, seconds * 1000 );
}
Du kunne derefter kalde det som dette:
$.wait( function(){ $("#message").slideUp() }, 5);