11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Lors de l'ouverture d'une page j'affiche un message via une <div>, je voudrais que 5secondes plus tard cette div disparaisse.


<div class="message">Erreur ... !!!</div>

Cela ne fonctionne pas :
$(document).ready(function(){
	setTimeout($(".message").hide(),5000);
});


Caché une div via un clic sur quelque chose sa je sais faire. Par contre comment faire pour que cela se produise d'après un certain temps d'ouverture de la page ?

Merci d'avance pour vos pistes Smiley smile
Modifié par cvneo (09 Apr 2009 - 12:07)
Un truc dans ce style:


window.onload = removeInFiveSeconds();

function removeInFiveSeconds() {

    sleep(5000);
    document.getElementById('ton_id').remove();

}

function sleep(ms) {

    var en = new EventNotifier();
    setTimeout(en, ms);
    en.wait->();

}


Modifié par Glopp (09 Apr 2009 - 11:31)
Je viens de voir que tu avais posté une question sur jQuery.
Tu as donc encore plus simple:



$(window).load(removeInFiveSeconds());

function removeInFiveSeconds() {

   sleep(5000);
   $('ton_id').remove();

   // sinon sans passer par un EventNotifier:
   //
   // setTimeout(function(){$('ton_id').remove();}, 5000);

}

function sleep(ms) {

    var en = new EventNotifier();
    setTimeout(en, ms);
    en.wait->();

}




Je suis pas sûr de mes codes, je bosse surtt avec prototype. Donc si ça marche pas correctement merci de l'indiquer que je modifie en conséquence.
Modifié par Glopp (09 Apr 2009 - 11:59)
Merci Smiley smile

Par contre sleep ne semble pas exister dans jquery Smiley decu

jQuery.sleep is not a function
[Break on this error] jQuery.sleep(5000);
J'ai essaye cela :


$(document).ready(function(){
	$ (".message").slideDown ('slow').slideUp ('slow');
});


Cela permet également l'effet escompté : apparition temporaire du message.

Par contre cela va beaucoup trop vite, y a t'il un moyen de ralentir l'effet ?
Salut,

Ton premier jet était presque bon, sauf que setTimeout attend un fonction en premier argument. En corrigeant simplement ce point, tout devrait fonctionner :
$(document).ready(function(){
    setTimeout(function(){$(".message").hide();}, 5000);
});
Merci

Sa marche impec, j'ai meme rajouter un effet fade out qui donne un plus jolie effet Smiley smile


$(document).ready(function(){
    setTimeout(function(){$(".message").fadeOut('normal');}, 3000);
});