JavaScript 計(jì)時(shí)事件
JavaScript?計(jì)時(shí)事件
通過(guò)使用 JavaScript,我們有能力做到在一個(gè)設(shè)定的時(shí)間間隔之后來(lái)執(zhí)行代碼,而不是在函數(shù)被調(diào)用后立即執(zhí)行。我們稱之為計(jì)時(shí)事件。
單擊本例中的按鈕后,會(huì)在 5 秒后彈出一個(gè)警告框:
<html> <head> <script type="text/javascript"> function timedMsg() { var t=setTimeout("alert('5 秒!')",5000) } </script> </head> <body> <form> <input type="button" value="顯示定時(shí)的警告框" onClick = "timedMsg()"> </form> <p>請(qǐng)點(diǎn)擊上面的按鈕。警告框會(huì)在 5 秒后顯示。</p> </body> </html>
本例中的程序會(huì)執(zhí)行 2 秒、4 秒和 6 秒的計(jì)時(shí):
<html> <head> <script type="text/javascript"> function timedText() { var t1=setTimeout("document.getElementById('txt').value='2 秒'",2000) var t2=setTimeout("document.getElementById('txt').value='4 秒'",4000) var t3=setTimeout("document.getElementById('txt').value='6 秒'",6000) } </script> </head> <body> <form> <input type="button" value="顯示計(jì)時(shí)的文本" onClick="timedText()"> <input type="text" id="txt"> </form> <p>點(diǎn)擊上面的按鈕。輸入框會(huì)顯示出已經(jīng)逝去的時(shí)間(2、4、6 秒)。</p> </body> </html>
在本例中,單擊開(kāi)始計(jì)時(shí)按鈕后,程序開(kāi)始從 0 以秒計(jì)時(shí)
<html> <head> <script type="text/javascript"> var c=0 var t function timedCount() { document.getElementById('txt').value=c c=c+1 t=setTimeout("timedCount()",1000) } </script> </head> <body> <form> <input type="button" value="開(kāi)始計(jì)時(shí)!" onClick="timedCount()"> <input type="text" id="txt"> </form> <p>請(qǐng)點(diǎn)擊上面的按鈕。輸入框會(huì)從 0 開(kāi)始一直進(jìn)行計(jì)時(shí)。</p> </body> </html>
在本例中,點(diǎn)擊計(jì)數(shù)按鈕后根據(jù)用戶輸入的數(shù)值開(kāi)始倒計(jì)時(shí),點(diǎn)擊停止按鈕停止計(jì)時(shí)
<html> <head> <script type="text/javascript"> var c=0 var t function timedCount() { document.getElementById('txt').value=c c=c+1 t=setTimeout("timedCount()",1000) } function stopCount() { c=0; setTimeout("document.getElementById('txt').value=0",0); clearTimeout(t); } </script> </head> <body> <form> <input type="button" value="開(kāi)始計(jì)時(shí)!" onClick="timedCount()"> <input type="text" id="txt"> <input type="button" value="停止計(jì)時(shí)!" onClick="stopCount()"> </form> <p>請(qǐng)點(diǎn)擊上面的“開(kāi)始計(jì)時(shí)”按鈕來(lái)啟動(dòng)計(jì)時(shí)器。輸入框會(huì)一直進(jìn)行計(jì)時(shí),從 0 開(kāi)始。點(diǎn)擊“停止計(jì)時(shí)”按鈕可以終止計(jì)時(shí),并將計(jì)數(shù)重置為 0。</p> </body> </html>
一個(gè) JavaScript 小時(shí)鐘:
<html> <head> <script type="text/javascript"> function startTime() { var today=new Date() var h=today.getHours() var m=today.getMinutes() var s=today.getSeconds() // add a zero in front of numbers<10 m=checkTime(m) s=checkTime(s) document.getElementById('txt').innerHTML=h+":"+m+":"+s t=setTimeout('startTime()',500) } function checkTime(i) { if (i<10) {i="0" + i} return i } </script> </head> <body onload="startTime()"> <div id="txt"></div> </body> </html>
JavaScript 計(jì)時(shí)事件
通過(guò)使用 JavaScript,我們有能力作到在一個(gè)設(shè)定的時(shí)間間隔之后來(lái)執(zhí)行代碼,而不是在函數(shù)被調(diào)用后立即執(zhí)行。我們稱之為計(jì)時(shí)事件。
在 JavaScritp 中使用計(jì)時(shí)事件是很容易的,兩個(gè)關(guān)鍵方法是:
setTimeout()未來(lái)的某時(shí)執(zhí)行代碼clearTimeout()取消setTimeout()
setTimeout()
語(yǔ)法
var t=setTimeout("javascript語(yǔ)句",毫秒)
setTimeout() 方法會(huì)返回某個(gè)值。在上面的語(yǔ)句中,值被儲(chǔ)存在名為 t 的變量中。假如你希望取消這個(gè) setTimeout(),你可以使用這個(gè)變量名來(lái)指定它。
setTimeout() 的第一個(gè)參數(shù)是含有 JavaScript 語(yǔ)句的字符串。這個(gè)語(yǔ)句可能諸如 "alert('5 seconds!')",或者對(duì)函數(shù)的調(diào)用,諸如 alertMsg()"。
第二個(gè)參數(shù)指示從當(dāng)前起多少毫秒后執(zhí)行第一個(gè)參數(shù)。
提示:1000 毫秒等于一秒。
如何停止執(zhí)行?
clearInterval() 方法用于停止 setInterval() 方法執(zhí)行的函數(shù)代碼。
語(yǔ)法
window.clearInterval(intervalVariable)
window.clearInterval()?方法可以不使用window前綴,直接使用函數(shù)clearInterval()。
要使用 clearInterval() 方法, 在創(chuàng)建計(jì)時(shí)方法時(shí)你必須使用全局變量:
myVar=setInterval("javascript function",milliseconds);
然后你可以使用clearInterval() 方法來(lái)停止執(zhí)行。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>時(shí)鐘停止示例</title> </head> <body> <p>頁(yè)面上顯示時(shí)鐘:</p> <p id="demo"></p> <button onclick="myStopFunction()">停止時(shí)鐘</button> <script> var myVar=setInterval(function(){myTimer()},1000); function myTimer(){ var d=new Date(); var t=d.toLocaleTimeString(); document.getElementById("demo").innerHTML=t; } function myStopFunction(){ clearInterval(myVar); } </script> </body> </html>