En effet j'ai créé un class pour le réaliser cependant elle ne fonctionne pas.
Pourriez-vous SVP me donner des conseils ?
Voici mon code /
class Timer {
constructor (mins) {
this.mins = mins;
this.secs = mins * 60;
} // END CONSTRUCTOR
countdown() {
setTimeout('Decrement()', 60);
}
// Fonction décrémenter qui décrémente la valeur.
Decrement() {
if (document.getElementById) {
this.minutes = document.getElementById("minutes");
this.seconds = document.getElementById("seconds");
this.minutes.style.textAlign = "center";
this.seconds.style.textAlign = "center";
// Si il reste moins d une minute on affiche que la valeur en secondes
if (this.seconds < 59) {
this.seconds.value = this.secs;
}
//Afficher les minutes et les secondes getminutes et getseconds sont utilisés pour obtenir : minutes et secondes
else {
this.minutes.value = this.getminutes();
this.seconds.value = this.getseconds();
}
//Quand il reste moins d une minute, la couleur des minutes et des secondes seront rouges
if (this.mins < 1) {
this.minutes.style.color = "red";
this.seconds.style.color = "red";
}
// si les secondes sont égales à 0, la page affiche une alerte pour le dire
if (this.mins < 0) {
// METRE SESSION ECOULEE
this.minutes.value = 0;
this.seconds.value = 0;
alert('votre session a expiré');
}
//si les secondes sont supérieures à zéro, on les décérementes
else {
this.secs--;
setTimeout('Decrement()', 1000);
}
console.log('ici !');
}
}
getminutes() {
//L'instruction return met fin à l'exécution d'une fonction et définit une valeur à renvoyer à la fonction appelante.
// minutes est égal à secondes divisé par 60, arrondi
this.mins = Math.floor(this.secs / 60);
return this.mins;
}
getseconds() {
//L'instruction return met fin à l'exécution d'une fonction et définit une valeur à renvoyer à la fonction appelante.
// prendre des minutes restantes (en secondes) du nombre total de secondes restantes
return this.secs - Math.round(this.mins * 60);
}
} // End CLASS
let MonTimer = new Timer (20);
MonTimer.Decrement();
J'ai revu le code pour qu'il soit plus simple. Le Timer fonctionne bien ainsi :
const Timer = secs => id = setInterval(() => {
secs --
if (secs === 0) {
clearInterval(id)
console.log('Terminé !')
// 0 : la page affiche une alerte pour le dire
}else {
console.log(secs)
// on affiche ici le temps en secondes ou en minutes
}
}, 1000)
Timer(30)
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Nodo : Bibliothèque JS pour manipuler le DOM facilement.