11523 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

J'ai un code fonctionnel de compteur dynamique, mais j'aimerais qu'il se reset lorsqu'il arrive à 1000.

Avez-vous une idée ? Merci d'avance pour votre aide.


<html>
<head>
<title>compteur</title>

<script type="text/javascript">
            // la date de début du compteur (avec mois-1)
            var date = new Date(2014,07,17);
            // la date de maintenant
            var now = new Date();
            // le nombre de départ
            var number = 1754000;
            // l'incrément
            var increment = 1;
            // le nombre de seconde
            var second = 1;
            // nombre total de seconde depuis la date de départ
            var secondTotal = (now.getTime()-date.getTime())/1000;
            // incrément total
            var incrementTotal = (secondTotal/3)*2;
            // nombre total arrondie
            number = Math.round(number+incrementTotal);
            function init(){
                document.getElementById("nombre").innerHTML = number;
                // appel de la fonction d'incrémentation toutes les x secondes
                setInterval('incrementation()',second*1000);
            }
            function incrementation(){
                number = number+increment;
                document.getElementById("nombre").innerHTML = number;
            }
</script>
</head>

<body onload="init();">

<span id="nombre"></span>

</body>
</html>
Modérateur
Bonjour,

Il suffit de rajouter var number0 = number;, puis de tester dans la fonction incrementation() quand number atteint number0+1000 pour lui redonner sa valeur de départ qui est number0.

Par exemple :


var number0 = number;
function incrementation(){
	number = number+increment;
	if (number>number0+1000) number=number0;
	document.getElementById("nombre").innerHTML = number;
}


Mais peut-être que ce n'était pas comme ça qu'il fallait comprendre la question, parce que là, ça parait un peu trop simple.

Amicalement,
Modérateur
Bonjour,

Si l'on veut en plus arrêter le compteur une fois qu'il a augmenter de 1000, il faut rajouter un clearInterval() dans la fonction incrementation().

Par exemple :


var number0 = number;
var intervalId = 0;
function init(){
	document.getElementById("nombre").innerHTML = number;
	// appel de la fonction d'incrémentation toutes les x secondes
	intervalId = setInterval('incrementation()',second*1000);
}
function incrementation(){
	number = number+increment;
	if (number>number0+1000)
	{
		clearInterval(intervalId);
		number = number0;
	}
	document.getElementById("nombre").innerHTML = number;
}


Amicalement,
Modifié par parsimonhi (18 Jul 2014 - 09:41)