標籤:
定時器可以讓 js 效果每隔幾秒鐘執行一次或者 n 秒之後執行某一個效果。定時器不屬於 javascript,是 window 對象提供的功能。
setTimeout 用法:
window.setTimeout(‘語句‘,毫秒); //指定毫秒後執行一次語句
【例】
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> #div1{ width: 300px; height: 300px; background: blue; border-bottom: 1px solid black; } </style></head><body> <p id="p">定時改變文字</p> <script> function change(){ document.getElementById("p").innerHTML = "已更換"; } window.setTimeout("change()", 3000); //3秒之後執行change方法 </script> </body></html>
最佳化:定時器的效果之上加上倒計時效果
setInterval(‘語句‘,毫秒); //每隔指定毫秒執行一次
清除定時器:
clearInterval();和clearTimeout();
【代碼】
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> #div1{ width: 300px; height: 300px; background: blue; border-bottom: 1px solid black; } </style></head><body> <input type="button" name="time" value="5"> <p id="p">定時改變文字</p> <script> function change(){ var inp = document.getElementsByName("time")[0]; var time = parseInt(inp.value)-1; inp.value = time; if(time == 0){ document.getElementById("p").innerHTML = "已更換"; clearInterval(clock); //清除定時器 } } var clock = setInterval("change()", 1000); //每秒鐘執行一次 </script> </body></html>
【例】如果不適用 setInterval,只使用 setTimeout,達到每過一段時間執行一次的效果
使用 setTimeout 實現 setInterval 的效果
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> #div1{ width: 300px; height: 300px; background: blue; border-bottom: 1px solid black; } </style></head><body> <input type="button" name="time" value="5"> <p id="p">定時改變文字</p> <script> var clock = null; function change(){ var inp = document.getElementsByName("time")[0]; var time = parseInt(inp.value)-1; inp.value = time; if(time == 0){ document.getElementById("p").innerHTML = "已更換"; clearTimeout(clock); return; } setTimeout("change()", 1000); } var clock = setTimeout("change()", 1000); //每秒鐘執行一次 </script> </body></html>
Javascript 筆記與總結(2-13)定時器 setTimeout 和 setInterval