JS定時(shí)器用法分析【時(shí)鐘與菜單中的應(yīng)用】
本文實(shí)例分析了JS定時(shí)器用法。分享給大家供大家參考,具體如下:
開啟定時(shí)器:
setInterval 間隔型 //一旦啟動(dòng)就不會(huì)停,重復(fù)執(zhí)行
setTimeout 延遲型 //只執(zhí)行一次
停止定時(shí)器:
clearInterval
clearTimeout
關(guān)閉定時(shí)器如果只是clearInterval()那會(huì)關(guān)掉所有的定時(shí)器,有時(shí)我們只需要關(guān)掉一個(gè)而已,所以要定義一個(gè)變量來存放定時(shí)器
var timer=null; btn1.onclick=function(){ timer=setInterval(函數(shù)名,1000); }; btn2.onclick=function(){ clearInterval(timer); };
例子1
時(shí)刻變化的時(shí)鐘,且數(shù)字是由圖片代替的
思路:
1.創(chuàng)建Date(日期)對(duì)象,獲取系統(tǒng)時(shí)間(注:獲取時(shí)間如果是一位數(shù),需要一個(gè)轉(zhuǎn)換成二位數(shù)的函數(shù))
2.將獲得的系統(tǒng)時(shí)間每一位數(shù)字賦給圖片地址的數(shù)字編號(hào)(charAt()方法,返回字符串指定位置的字符,所以需要一個(gè)for循環(huán)返回時(shí)分秒六位數(shù)字)
3.需要一個(gè)定時(shí)器讓它自動(dòng)更新時(shí)間
function toDouble(num){ //一位數(shù)轉(zhuǎn)換成二位數(shù) if(num<10){ return '0'+num; }else{ return ''+num; } } window.onload=function(){ var oimg=document.getElementsByTagName('img'); var i; function updatetime(){ var odate=new Date(); var str=toDouble(odate.getHours())+toDouble(odate.getMinutes())+toDouble(odate.getSeconds()); for(i=0;i<oimg.length;i++){ oimg[i].src='images/'+str.charAt(i)+'.png'; } } setInterval(updatetime,1000); //定時(shí)器里面應(yīng)該放的是方法,而不是直接執(zhí)行函數(shù) updatetime(); //不執(zhí)行下函數(shù),會(huì)出現(xiàn)剛刷新頁面第一秒,時(shí)間是00時(shí)00分00秒 }
例子2
二級(jí)菜單
一級(jí)菜單和二級(jí)菜單間有縫隙,如果僅僅是移入一級(jí)菜單時(shí)二級(jí)顯示,移除時(shí)隱藏,那么移到縫隙間還是會(huì)顯示不出來(或者說來不及進(jìn)入二級(jí)菜單,二級(jí)菜單就沒了),所以需要一個(gè)定時(shí)器,在離開一級(jí)菜單時(shí),不讓二級(jí)馬上消失,而是緩慢隱藏,然后在進(jìn)入二級(jí)菜單時(shí),清除這個(gè)定時(shí)器,他就不會(huì)消失了,另外離開二級(jí)菜單時(shí),還是要讓它消失,不然會(huì)永遠(yuǎn)存在
window.onload=function(){ var box1=document.getElementById('box1'); var box2=document.getElementById('box2'); var timer=null; box1.onmouseover=function(){ box2.style.display="block"; clearTimeout(timer); //不清除定時(shí)器,離開二級(jí)菜單進(jìn)入一級(jí)菜單時(shí),二級(jí)菜單也會(huì)隱藏 }; box1.onmouseout=function(){ timer=setTimeout(function(){ box2.style.display="none"; },300); }; box2.onmouseover=function(){ clearTimeout(timer); }; box2.onmouseout=function(){ //如果離開二級(jí)菜單,讓他瞬間消失,IE7下移動(dòng)到一級(jí)菜單時(shí),二級(jí)菜單會(huì)閃爍 timer=setTimeout(function(){ box2.style.display="none"; },300); }; };
簡化下代碼
window.onload=function(){ var box1=document.getElementById('box1'); var box2=document.getElementById('box2'); var timer=null; box1.onmouseover=box2.onmouseover=function show(){ box2.style.display="block"; clearTimeout(timer); }; box1.onmouseout=box2.onmouseout=function hide(){ timer=setTimeout(function(){ box2.style.display="none"; },300); }; };
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript時(shí)間與日期操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- js原生之焦點(diǎn)圖轉(zhuǎn)換加定時(shí)器實(shí)例
- JavaScript定時(shí)器實(shí)現(xiàn)的原理分析
- javascript 定時(shí)器工作原理分析
- JavaScript實(shí)現(xiàn)頁面定時(shí)刷新(定時(shí)器,meta)
- JS Canvas定時(shí)器模擬動(dòng)態(tài)加載動(dòng)畫
- JavaScript暫停和繼續(xù)定時(shí)器的實(shí)現(xiàn)方法
- JS定時(shí)器使用,定時(shí)定點(diǎn),固定時(shí)刻,循環(huán)執(zhí)行詳解
- JavaScript 定時(shí)器 SetTimeout之定時(shí)刷新窗口和關(guān)閉窗口(代碼超簡單)
- javascript中SetInterval與setTimeout的定時(shí)器用法
- JavaScript定時(shí)器和優(yōu)化的取消定時(shí)器方法
- Javascript中setTimeOut和setInterval的定時(shí)器用法
- JavaScript學(xué)習(xí)筆記之定時(shí)器
相關(guān)文章
es6基礎(chǔ)學(xué)習(xí)之解構(gòu)賦值
解構(gòu)賦值語法是一個(gè) Javascript 表達(dá)式,這使得可以將值從數(shù)組或?qū)傩詮膶?duì)象提取到不同的變量中。這篇文章主要給大家介紹了關(guān)于es6基礎(chǔ)學(xué)習(xí)之解構(gòu)賦值的相關(guān)資料,需要的朋友可以參考下2018-12-12關(guān)于微信小程序?qū)崿F(xiàn)云支付那些事兒
我們?cè)谧鲂〕绦蛑Ц断嚓P(guān)的開發(fā)時(shí),總會(huì)遇到這些難題,下面這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)云支付那些事兒,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09BootStrap中Datetimepicker和uploadify插件應(yīng)用實(shí)例小結(jié)
這篇文章主要介紹了BootStrap中Datetimepicker和uploadify插件應(yīng)用實(shí)例小結(jié)的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05JavaScript中alert的使用方法超詳細(xì)介紹
JS中的alert作用是在瀏覽器中彈出一個(gè)警告框,而使用alert有三種方式,不同的方式所呈現(xiàn)的效果也不相同,這篇文章主要給大家介紹了關(guān)于JavaScript中alert使用方法的相關(guān)資料,需要的朋友可以參考下2024-01-01瀏覽器環(huán)境下JavaScript腳本加載與執(zhí)行探析之動(dòng)態(tài)腳本與Ajax腳本注入
這篇文章主要介紹了瀏覽器環(huán)境下JavaScript腳本加載與執(zhí)行探析之動(dòng)態(tài)腳本與Ajax腳本注入 的相關(guān)資料,需要的朋友可以參考下2016-01-01