Conto alla rovescia in JavaScript
- Codice di esempio del timer per il conto alla rovescia in JavaScript
- Spiegazione del codice del timer per il conto alla rovescia in JavaScript
Questo articolo ti fornirà un modo semplice per creare un conto alla rovescia in JavaScript.
Di seguito è riportato il codice per un timer per un minuto e mezzo.
<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);
};
Codice di esempio del timer per il conto alla rovescia in JavaScript
-
Imposta il tag HTML per il timer
Nel codice sopra, il tag
<h1>contiene la visualizzazione del timer. Usa questo codice nel codice HTML della tua pagina web. Ilid="count-down-timer"è richiesto poiché si accede all’elemento in JavaScript con l’idcount-down-timerper modificare dinamicamente il testo dell’elemento in fase di esecuzione.<h1 class="text-center" id="count-down-timer"></h1> -
Imposta il valore del timer
Una volta posizionato il tag, il passaggio successivo consiste nell’impostare il valore del tempo di conteggio. Di solito, le pagine web utilizzano un tempo hardcoded incorporato nel loro codice, che non è personalizzabile. Puoi impostare il timer nel metodo
window.onloadintime_minutesetime_seconds. Ad esempio, se desideri impostare un timer per un minuto e mezzo, imposta il codice come segue:let time_minutes = 1; // Value in minutes let time_seconds = 30; // Value in secondsSe desideri impostare per 3 minuti, imposta
time_minutes = 3e lasciatime_seconds = 0. Ora, una volta eseguito il codice o ricaricato il codice HTML, è possibile ottenere l’output aggiornato.
Spiegazione del codice del timer per il conto alla rovescia in JavaScript
-
L’esecuzione inizia con la funzione
window.onload. Prende il valore del timer impostato dall’utente e calcola la durata totale del tempo in secondi.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')ottiene il nodo HTML dell’elemento. Questo nodo verrà utilizzato per aggiornare il valore del timer.element = document.querySelector('#count-down-timer'); -
Una volta che l’elemento è disponibile, si inizializza con il valore da noi impostato. Ad esempio, nel codice, è di 1 minuto e 30 secondi. È impostato in un formato imbottito.
function paddedFormat(num) { return num < 10 ? '0' + num : num; } console.log(paddedFormat(3)); console.log(paddedFormat(12));Produzione:
03 12 -
La funzione
paddedFormat(num)restituisce il numero riempito. Per i minuti e i secondi, i valori a una cifra vengono riempiti anteponendo loro uno0. Ad esempio, 2 minuti e 5 secondi vengono riempiti rispettivamente come 02 e 05.element.textContent = `${paddedFormat(time_minutes)}:${paddedFormat(time_seconds)}`; -
Successivamente, invochiamo la funzione
startCountDown(--duration, element)passandodurationin secondi e il nodo HTML dell’elemento di visualizzazione. Ora abbiamo visualizzato il valore01:30. Quindi, abbiamo bisogno che il timer inizi da01:29. Questo è il motivo per cui usiamo l’operatore unario decremento con durata--duration.startCountDown(--duration, element); -
startCountDown(duration, element)è il cuore del timer. In questo, usiamo la funzionesetInterval(function(){}, 1000)di JavaScript per eseguire il timer dopo ogni secondo (1000 millisecondi) finché non viene cancellato o ucciso usandoclearInterval(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); } -
All’interno della funzione
setinterval()vengono calcolati i minuti ei secondi per la visualizzazione. I minuti vengono calcolati dividendo il valore diremainingSecondsper 60 per ottenere il valore dei minuti e prendendo la sua parte intera.let secondsRemaining = 89; let min = parseInt(secondsRemaining / 60); let sec = parseInt(secondsRemaining % 60); console.log(secondsRemaining + 'seconds'); console.log(min); console.log(sec);Produzione:
89 // Equivalent to 1 min and 29 seconds 1 29 -
Successivamente, mostriamo i minuti e i secondi calcolati sulla pagina web impostando il testo usando l’attributo
textContentdell’elemento del nodo HTML.element.textContent = `${paddedFormat(min)}:${paddedFormat(sec)}`; -
Successivamente, il valore si riduce per
secondsRemaininge la funzionalità timer viene eseguita ogni secondo con il metodosetInterval(). -
Infine, una volta che il valore
secondsRemainingè 0, viene attivatoclearInterval(countInterval)per fermare il timer. Assicura inoltre che il timer non venga riavviato o che vada a valori negativi.