[A l'aide] Message à la fin du décompte

qveys Messages postés 32 Statut Membre -  
Fricky42 Messages postés 566 Statut Membre -
Bonjour, Bonsoir ou Bonne nuit,

Je cherche depuis un bout de temps comment faire pour qu'a la fin du décompte il affiche un message comme "JOYEUX NOEL" et qu'il ne continue pas le décompte... (il continue le décompte à la fin du temps mais à l'envers donc - 1 jours ect...).

Pourriez-vous m'aidez si je vous donne le code html que j'ai créer ?

<html>
<head>
<script language="JavaScript">
// la date à partir de laquelle on compte
var cible = new Date("December 25, 2008 00:00:00");

// nombre de millisecondes par jour, heure, minute et seconde
var mms_jour = 24 * 60 * 60 * 1000;
var mms_heure = 60 * 60 * 1000;
var mms_minute = 60 * 1000;
var mms_seconde = 1000;

function decompte() {

// la date courante
var aujourdhui = new Date();

// on crée les variables qui accueilleront les différences entre aujourd'hui et la date à atteindre
var change_j = -1;
var change_h = -1;
var change_m = -1;

// le total de millisecondes de différences
var diff_mms = cible.getTime() - aujourdhui.getTime();

// pareil pour les jours
diff_jours = Math.floor(diff_mms / mms_jour);
diff_mms -= diff_jours * mms_jour;

// pour les heures
diff_heures = Math.floor(diff_mms / mms_heure);
diff_mms -= diff_heures * mms_heure;

// les... minutes, bravo ;-)
diff_minutes = Math.floor(diff_mms / mms_minute);
diff_mms -= diff_minutes * mms_minute;

// les secondes, ce qui reste en fait.
var diff_secondes = Math.floor(diff_mms / mms_seconde);


// on affecte nos résultats aux champs du formulaire
document.getElementById("jours").innerHTML = diff_jours;
document.getElementById("heures").innerHTML  = diff_heures;
document.getElementById("minutes").innerHTML  = diff_minutes;
document.getElementById("secondes").innerHTML = diff_secondes;

// on relance la fonction pour actualiser à la seconde
setTimeout("decompte()",1000);
}
</script> 

</head>
<body  onLoad="decompte()" bgcolor="#000000">
<form name="formulaire"><font face="arial" size="4"><b>
	<p align="center" style="margin-top: 0; margin-bottom: 0">
	<font color="#FF0000">NOEL</font> <font color="#FFFFFF">c'est dans 
	</font> 
	</p>
	<p align="center" style="margin-top: 0; margin-bottom: 0">
<font color="#FFFFFF">
<span id="jours">0</span> jours 
<span id="heures">0</span> heures
</font>
</p>
	<p align="center" style="margin-top: 0; margin-bottom: 0">
	<font color="#FFFFFF">
	<span id="minutes">0</span> minutes
<span id="secondes">0</span> secondes</font></p>
</form>
</body>
</html>


Merci d'avance
A voir également:

3 réponses

qveys Messages postés 32 Statut Membre
 
UP !
0
qveys Messages postés 32 Statut Membre
 
Aidez moi ... S'il vous plait !
0
Fricky42 Messages postés 566 Statut Membre 182
 
Ouaaa.

bon deja... Bonjour.

Ensuite : Ce n'est pas setTimeout que tu devrais utiliser, mais setInterval (setTimeout declenchera une fois la fonction apres un certain temps, setInterval la declenchera toutes les n millisecondes. Util pour un compte a rebours)

Ensuite.... Ne met pas ton setInterval dans la fonction appelée. C'est pas mieux qu'une boucle infini ce machin la. Donc met ton setInterval apres la fonction.

Ensuite, pour arreter un setInterval il faut utiliser clearInterval.

Pour cela, affecte le le setInterval dans une variable toto :
var toto = setInterval("machin...");

enfin, dans ta fonction, ajoute un simple if () les differences sont a zero, tu affiches le joyeux noel et tu clear avec : clearInterval(toto);
0