ä½¿ç¨ setInterval çå½©è²æ¶é
å建ä¸ä¸ªåè¿æ ·çå½©è²æ¶éï¼
ä½¿ç¨ HTML/CSS è¿è¡æ ·å¼è®¾è®¡ï¼JavaScript ä» ç¨æ¥æ´æ°å ç´ ä¸çæ¶é´ã
é¦å ï¼è®©æä»¬ç¼å HTML/CSSã
æ¶é´çæ¯ä¸ªç»ä»¶é½æå
¶èªå·±ç <span>ï¼é£å°ä¼çèµ·æ¥å¾æ£ï¼
<div id="clock">
<span class="hour">hh</span>:<span class="min">mm</span>:<span class="sec">ss</span>
</div>
å¦å¤ï¼æä»¬éè¦ä½¿ç¨ CSS 为å®ä»¬çè²ã
彿° update ä¼å·æ°æ¶éï¼ç± setInterval æ¯ç§è°ç¨ä¸æ¬¡ï¼
function update() {
let clock = document.getElementById('clock');
let date = new Date(); // (*)
let hours = date.getHours();
if (hours < 10) hours = '0' + hours;
clock.children[0].innerHTML = hours;
let minutes = date.getMinutes();
if (minutes < 10) minutes = '0' + minutes;
clock.children[1].innerHTML = minutes;
let seconds = date.getSeconds();
if (seconds < 10) seconds = '0' + seconds;
clock.children[2].innerHTML = seconds;
}
å¨ (*) è¡ä¸ï¼æä»¬æ¯æ¬¡é½æ£æ¥å½åæ¶é´ãsetInterval è°ç¨å¹¶ä¸å¯é ï¼å®ä»¬å¯è½ä¼åçå»¶è¿ç°è±¡ã
æ¶é管ç彿°ï¼
let timerId;
function clockStart() { // è¿è¡æ¶é
if (!timerId) { // ä»
彿¶éåæ¢æ¶ setInterval
timerId = setInterval(update, 1000);
}
update(); // (*)
}
function clockStop() {
clearInterval(timerId);
timerId = null; // (**)
}
请注æï¼update() ä¸ä»
å¨ clockStart() ä¸è¢«è°åº¦ï¼èä¸è¿ç«å³å¨ (*) è¡è¿è¡ãå¦åï¼è®¿é®è
å°ä¸å¾ä¸çå° setInterval ç¬¬ä¸æ¬¡æ§è¡ãå¨é£ä¹åï¼æ¶éå°æ¯ç©ºçã
æ¤å¤ï¼å¨ clockStart() ä¸ä»
彿¶éæªè¿è¡æ¶æè¿è¡ setInterval 乿¯è³å
³éè¦çãå¦å夿¬¡ç¹å» Start æé®ä¼è®¾ç½®å¤ä¸ªå¹¶åçé´éãæ´ç³ç³çæ¯ ââ æä»¬åªä¼ä¿çæåä¸ä¸ªæ¶é´é´éç timerIDï¼å¤±å»å¯¹ææå
¶ä»æ¶é´é´éçå¼ç¨ã飿们就å乿 æ³åæ¢æ¶éäºï¼è¯·æ³¨æï¼å½æ¶é忢æ¶ï¼æä»¬éè¦å¨ (**) è¡è¿æ ·æ¸
é¤ timerIDï¼ä»¥ä¾¿å¯ä»¥éè¿æ§è¡ clockStart() 忬¡å¯å¨æ¶éã