Posted on 2007-08-30 18:25
tearofmoscow 閱讀(16531)
評(píng)論(4) 編輯 收藏
在javascritp中,有兩個(gè)關(guān)于定時(shí)器的專用函數(shù),它們是:
1.倒計(jì)定時(shí)器:timename=setTimeout("function();",delaytime);
2.循環(huán)定時(shí)器:timename=setInterval("function();",delaytime);
function()是定時(shí)器觸發(fā)時(shí)要執(zhí)行的是事件的函數(shù),可以是一個(gè)函數(shù),也可以是幾個(gè)函數(shù),或者javascript的語(yǔ)句也可以,單要用;隔開(kāi);delaytime則是間隔的時(shí)間,以毫秒為單位。
倒計(jì)時(shí)定時(shí)器就是在指定時(shí)間后觸發(fā)事件,而循環(huán)定時(shí)器就是在間隔時(shí)間到來(lái)時(shí)反復(fù)觸發(fā)事件,其區(qū)別在于:前者只是作用一次,而后者則不停地作用。
倒計(jì)時(shí)定時(shí)器一般用于頁(yè)面上只需要觸發(fā)一次的的情況,比如點(diǎn)擊某按鈕后頁(yè)面在一定時(shí)間后跳轉(zhuǎn)到相應(yīng)的站點(diǎn),也可以用于判斷一個(gè)瀏覽者是不是你的站點(diǎn)上的“老客”,如果不是,你就可以在5秒或者10秒后跳轉(zhuǎn)到相應(yīng)的站點(diǎn),然后告訴他以后再來(lái)可以在某個(gè)地方按某一個(gè)按鈕就可以快速進(jìn)入。
循環(huán)定時(shí)器一般用于站點(diǎn)上需要從復(fù)執(zhí)行的效果,比如一個(gè)javascript的滾動(dòng)條或者狀態(tài)欄,也可以用于將頁(yè)面的背景用飛雪的圖片來(lái)表示。這些事件需要隔一段時(shí)間運(yùn)行一次。
有時(shí)候我們也想去掉一些加上的定時(shí)器,此時(shí)可以用clearTimeout(timename) 來(lái)關(guān)閉倒計(jì)時(shí)定時(shí)器,而用clearInterval(timename)來(lái)關(guān)閉循環(huán)定時(shí)器。
例1:
<SCRIPT LANGUAGE="JavaScript">
setTimeout("confirm('123456')",1000);
</SCRIPT>
<script language="JavaScript" type="text/javascript">
function count() {
setTimeout("alert('三秒到了')",3000)
}
</Script>
<INPUT TYPE="button" VALUE=" 計(jì)時(shí)開(kāi)始" onClick="count()">
例2:
<Script><script language="JavaScript" type="text/javascript">
var sec = 0;
timerID = setInterval("count()",1000);
function count() {
num.innerHTML = sec++;
}
</Script>
停留時(shí)間:
<FONT ID="num" FACE="impact">0</FONT>秒鐘
<INPUT TYPE="button" VALUE="停止" onClick="clearInterval(timerID)">
例3:
<script language="JavaScript" type="text/javascript">
var str = "這是一個(gè)在線拍賣的網(wǎng)站,請(qǐng)盡情血拼吧!";
var seq = 0;
function scroll() {
msg = str.substring(0, seq+1);
banner.innerHTML = msg;
seq++;
if (seq >= str.length) seq = 0;
}
</Script>
<Body onLoad="setInterval('scroll()',500)">
<FONT ID="banner"></FONT>
</Body>