Chargement...
Allez viens, on est bien !
Inscription / Connexion :
Google
Nouveaux Populaires Likes Favoris
plus
Tous les groupes Créer un groupe



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é
Connectez-vous ou ouvrez un compte pour poster un commentaire.
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.
@WoAw: t'es incroyable.
Merci
@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/



A Voir
Chargement...
Chargement...
Chargement...