Compte à rebours en JavaScript
- Exemple de code de compte à rebours en JavaScript
- Explication du code du compte à rebours en JavaScript
Cet article vous donnera un moyen simple de créer un compte à rebours en JavaScript.
Voici le code pour une minuterie pendant une minute et demie.
<h1 class="text-center" id="count-down-timer"></h1>
function paddedFormat(num) {
return num < 10 ? '0' + num : num;
}
function startCountDown(duration, element) {
let secondsRemaining = duration;
let min = 0;
let sec = 0;
let countInterval = setInterval(function() {
min = parseInt(secondsRemaining / 60);
sec = parseInt(secondsRemaining % 60);
element.textContent = `${paddedFormat(min)}:${paddedFormat(sec)}`;
secondsRemaining = secondsRemaining - 1;
if (secondsRemaining < 0) {
clearInterval(countInterval)
};
}, 1000);
}
window.onload = function() {
let time_minutes = 1; // Value in minutes
let time_seconds = 30; // Value in seconds
let duration = time_minutes * 60 + time_seconds;
element = document.querySelector('#count-down-timer');
element.textContent =
`${paddedFormat(time_minutes)}:${paddedFormat(time_seconds)}`;
startCountDown(--duration, element);
};
Exemple de code de compte à rebours en JavaScript
-
Définit la balise HTML du minuteur
Dans le code ci-dessus, la balise
<h1>contient l’affichage de la minuterie. Utilisez ce code dans le code HTML de votre page Web. Leid="count-down-timer"est requis car on accède à l’élément en JavaScript avec l’idcount-down-timerpour changer le texte de l’élément dynamiquement au moment de l’exécution.<h1 class="text-center" id="count-down-timer"></h1> -
Régler la valeur de la minuterie
Une fois la balise en place, l’étape suivante consiste à définir la valeur du temps de comptage. Habituellement, les pages Web utilisent une heure codée en dur intégrée à leur code, qui n’est pas personnalisable. Vous pouvez régler le timer dans la méthode
window.onloadentime_minutesettime_seconds. Par exemple, si vous souhaitez régler une minuterie sur une minute et demie, définissez le code comme suit:let time_minutes = 1; // Value in minutes let time_seconds = 30; // Value in secondsSi vous souhaitez régler sur 3 minutes, réglez alors
time_minutes = 3et laissez letime_seconds = 0. Maintenant, une fois que vous exécutez votre code ou rechargez votre HTML, vous pouvez obtenir la sortie mise à jour.
Explication du code du compte à rebours en JavaScript
-
L’exécution démarre avec la fonction
window.onload. Il prend la valeur de la minuterie que vous avez définie et calcule la durée totale en secondes.let time_minutes = 1; // Value in minutes let time_seconds = 30; // Value in seconds let duration = time_minutes * 60 + time_seconds; -
document.querySelector('#count-down-timer')récupère le nœud HTML de l’élément. Ce nœud sera utilisé pour actualiser la valeur du minuteur.element = document.querySelector('#count-down-timer'); -
Une fois l’élément disponible, il s’initialise avec la valeur que nous avons définie. Par exemple, dans le code, il est de 1 minute et 30 secondes. Il est défini dans un format rembourré.
function paddedFormat(num) { return num < 10 ? '0' + num : num; } console.log(paddedFormat(3)); console.log(paddedFormat(12));Production:
03 12 -
La fonction
paddedFormat(num)renvoie le nombre complété. Pour les minutes et les secondes, les valeurs à un chiffre sont complétées en leur préfixant0. Par exemple, 2 minutes et 5 secondes sont remplies comme 02 et 05, respectivement.element.textContent = `${paddedFormat(time_minutes)}:${paddedFormat(time_seconds)}`; -
Ensuite, nous invoquons la fonction
startCountDown(--duration, element)en passantdurationen secondes, et le nœud HTML de l’élément d’affichage. Nous avons affiché la valeur01:30maintenant. Par conséquent, nous avons besoin que la minuterie démarre à01:29. C’est la raison pour laquelle nous utilisons l’opérateur unaire de décrémentation de durée--duration.startCountDown(--duration, element); -
startCountDown(duration, element)est le cœur de la minuterie. En cela, nous utilisons la fonctionsetInterval(function(){}, 1000)de JavaScript pour exécuter le timer après chaque seconde (1000 millisecondes) jusqu’à ce qu’il soit effacé ou tué en utilisantclearInterval(countInterval).function startCountDown(duration, element) { let secondsRemaining = duration; let min = 0; let sec = 0; let countInterval = setInterval(function() { min = parseInt(secondsRemaining / 60); sec = parseInt(secondsRemaining % 60); element.textContent = `${paddedFormat(min)}:${paddedFormat(sec)}`; secondsRemaining = secondsRemaining - 1; if (secondsRemaining < 0) { clearInterval(countInterval) }; }, 1000); } -
Dans la fonction
setinterval(), les minutes et secondes d’affichage sont calculées. Les minutes sont calculées en divisant la valeurremainingSecondspar 60 pour donner la valeur des minutes et en prenant sa partie entière.let secondsRemaining = 89; let min = parseInt(secondsRemaining / 60); let sec = parseInt(secondsRemaining % 60); console.log(secondsRemaining + 'seconds'); console.log(min); console.log(sec);Production:
89 // Equivalent to 1 min and 29 seconds 1 29 -
Ensuite, nous affichons les minutes et secondes calculées sur la page web en paramétrant le texte à l’aide de l’attribut
textContentde l’élément nœud HTML.element.textContent = `${paddedFormat(min)}:${paddedFormat(sec)}`; -
Ensuite, la valeur diminue pour les
secondsRemaining, et la fonction timer s’exécute chaque seconde avec la méthodesetInterval(). -
Enfin, une fois que la valeur
secondsRemainingest à 0, leclearInterval(countInterval)est déclenché pour arrêter le chronomètre. Cela garantit également que la minuterie n’est pas redémarrée ou passe à des valeurs négatives.