国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS定時器用法分析【時鐘與菜單中的應用】

2019-11-19 18:22:02
字體:
來源:轉載
供稿:網友

本文實例分析了JS定時器用法。分享給大家供大家參考,具體如下:

開啟定時器:

setInterval 間隔型    //一旦啟動就不會停,重復執行
setTimeout 延遲型   //只執行一次

停止定時器:

clearInterval
clearTimeout

關閉定時器如果只是clearInterval()那會關掉所有的定時器,有時我們只需要關掉一個而已,所以要定義一個變量來存放定時器

var timer=null;btn1.onclick=function(){  timer=setInterval(函數名,1000);};btn2.onclick=function(){  clearInterval(timer);};

例子1

時刻變化的時鐘,且數字是由圖片代替的

思路:

1.創建Date(日期)對象,獲取系統時間(注:獲取時間如果是一位數,需要一個轉換成二位數的函數)

2.將獲得的系統時間每一位數字賦給圖片地址的數字編號(charAt()方法,返回字符串指定位置的字符,所以需要一個for循環返回時分秒六位數字)

3.需要一個定時器讓它自動更新時間

function toDouble(num){ //一位數轉換成二位數  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); //定時器里面應該放的是方法,而不是直接執行函數  updatetime(); //不執行下函數,會出現剛刷新頁面第一秒,時間是00時00分00秒}

例子2

二級菜單

一級菜單和二級菜單間有縫隙,如果僅僅是移入一級菜單時二級顯示,移除時隱藏,那么移到縫隙間還是會顯示不出來(或者說來不及進入二級菜單,二級菜單就沒了),所以需要一個定時器,在離開一級菜單時,不讓二級馬上消失,而是緩慢隱藏,然后在進入二級菜單時,清除這個定時器,他就不會消失了,另外離開二級菜單時,還是要讓它消失,不然會永遠存在

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);  //不清除定時器,離開二級菜單進入一級菜單時,二級菜單也會隱藏  };  box1.onmouseout=function(){    timer=setTimeout(function(){      box2.style.display="none";    },300);  };  box2.onmouseover=function(){    clearTimeout(timer);  };  box2.onmouseout=function(){  //如果離開二級菜單,讓他瞬間消失,IE7下移動到一級菜單時,二級菜單會閃爍    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);  };};

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript時間與日期操作技巧總結》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安岳县| 乐清市| 永福县| 延庆县| 安康市| 鄂托克前旗| 聊城市| 南岸区| 澄城县| 鹤壁市| 进贤县| 西华县| 桃江县| 夏邑县| 桃园县| 突泉县| 元江| 和硕县| 永平县| 乐业县| 乌兰浩特市| 仁怀市| 天长市| 来安县| 台山市| 贵定县| 浦城县| 福建省| 分宜县| 普陀区| 五原县| 双辽市| 鄂伦春自治旗| 宜川县| 郴州市| 科技| 扎赉特旗| 南召县| 忻州市| 沂南县| 吴川市|