JS - mettre un compteur en boucle

j'essaye de faire répéter un compte a rebours (de 5secs a 0) 10 fois d'affilé (je dois faire un jeu en js et j'ai besoin de la notion de temps), du coup j'ai tenté avec une boucle for puis une boucle while mais sans résultat. indépendamment mon compte a rebours fonctionne, j'arrive même a le faire répéter en bidouillant, en me servant du setTimeout comme d'une boucle. le but c'est d'avoir mon compte a rebours 10 fois d'affilé mais coder proprement
Si vous avez des pistes n'hésitez pas, merci d'avance.

// compte a rebours
var decompte = function(i){
document.querySelector("#decompte").innerHTML = i + "s"
}
var affichage = function(){
document.querySelector("#decompte").innerHTML= "Fin du décompte"
}

var temp = 0
var decrement = function(){
for( i = 5; i > -1; i--){

setTimeout(function(s) {
return function(){
decompte(s)
}
}(i), temp);
temp += 1000

}
}
decrement()
setTimeout(affichage, temp-1000)
//affichage()

setTimeout(function()
{
console.log("if u read dis it means ur mom gey")
document.querySelector("#decompte").innerHTML = "c'est ok"
let random = Math.floor(Math.random()*5)
instructionStart.innerHTML = questionlvl1[random]
}

, temp - 500);


PS: j'ai pas le droit au library

TLDR; compte a rebours ok mais besoin de le faire répéter 10 fois d'affilé

Poster un commentaire
WoAw
WoAw
5 ans

Je t'ai bidouillé un petit truc avec setInterval plutôt que setTimeout:


var currentIndex = 5;
var repetition = 0;
function decompte(){
var intervalId =setInterval(function(){
document.querySelector("#decompte").innerHTML = currentIndex + "s"
currentIndex--;
if (currentIndex < 0){
clearInterval(intervalId);
repetition++;
if (repetition < 10){
document.querySelector("#decompte").innerHTML= "Fin du décompte"
currentIndex = 5;
decompte();
}
}
}, 1000);
}
decompte();

Une fois que tu appelles decomptes() pour la première fois le compte à rebours va se lancer 10 fois les uns après les autres, tu peux faire des tests ici : https://jsfiddle.net/0176pbyg/

Tu peux lancer le décompte via le click sur un bouton comme j'ai fait ou en appellant la fonction quand tu le souhaites dans le code.

lestercoraire

@WoAw: t'es incroyable.
Merci

WoAw
WoAw
5 ans

@lestercoraire: My bad dans la précipitation je t'ai fait un code qui ne marchera qu'un seule fois (sauf si tu raffraichis la page entre chaque utilisation), j'ai changé un poil le code pour qu'il soit réutilisable à volonté : https://jsfiddle.net/g6u342mb/6/

Cette page est réservée aux ADULTES

Tu es sur le point d'accéder à un site web qui contient du matériel explicite (pornographie).

Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.


En accédant à ce site, tu acceptes nos conditions d'utilisation.