Izgradnja jednostavnog odbrojavanja vremena jednostavna je s JavaScript izvornim vremenskim događajima. O njima možete pročitati više u ovom članku.
Izrada odbrojavanja
Počnite objavljujući praznu funkciju pod nazivom startCountdown
koji uzima seconds
kao argument:
function startCountdown(seconds) { };
Želimo pratiti sekunde koje prolaze nakon pokretanja odbrojavanja, pa upotrijebite let
za deklariranje pozvane varijable counter
i postavite je jednakom seconds
:
function startCountdown(seconds) { let counter = seconds; }
Imajte na umu da je najbolja praksa spremanje funkcije vremenskog događaja u varijablu. To znatno olakšava zaustavljanje odbrojavanja kasnije. Stvorite varijablu koja se zove interval
i postavite je jednakom setInterval()
:
function startCountdown(seconds) { let counter = seconds; const interval = setInterval(); }
Možete proslijediti funkciju izravno setInterval
, pa joj proslijedimo praznu funkciju strelice kao prvi argument. Također, želimo da se funkcija izvodi svake sekunde, zato dodajte 1000 kao drugi argument:
function startCountdown(seconds) { let counter = seconds; const interval = setInterval(() => { }, 1000); }
Sada će se funkcija kojoj smo prešli setInterval
izvoditi svake sekunde. Svaki put kad se pokrene, želimo prijaviti trenutnu vrijednost counter
konzole prije deinkrementiranja:
function startCountdown(seconds) { let counter = seconds; const interval = setInterval(() => { console.log(counter); counter--; }, 1000); }
Sada ako pokrenete funkciju, vidjet ćete da radi, ali ne zaustavi counter
se niže nego što je manje od 0:
startCountdown(5); // Console Output // // 5 // 4 // 3 // 2 // 1 // 0 // -1 // -2
Da biste to popravili, prvo napišite if
izjavu koja se izvršava kada counter
je manje od 0:
function startCountdown(seconds) { let counter = seconds; const interval = setInterval(() => { console.log(counter); counter--; if (counter < 0 ) { } }, 1000); }
Zatim unutar if
izjave izbrišite interval
s clearInterval
i prijavite zvučni niz alarma na konzolu:
function startCountdown(seconds) { let counter = seconds; const interval = setInterval(() => { console.log(counter); counter--; if (counter < 0 ) { clearInterval(interval); console.log('Ding!'); } }, 1000); }
Izvršenje
Sada kada pokrenete timer, trebali biste vidjeti sljedeće:
startCountdown(5); // Console Output // // 5 // 4 // 3 // 2 // 1 // 0 // Ding!
Više resursa
JavaScript vremenski događaji: setTimeout i setInterval