JS定时器用法分析【时钟与菜单中的应用】


Posted in Javascript onDecember 21, 2016

本文实例分析了JS定时器用法。分享给大家供大家参考,具体如下:

开启定时器:

setInterval 间隔型    //一旦启动就不会停,重复执行
setTimeout 延迟型   //只执行一次

停止定时器:

clearInterval
clearTimeout

关闭定时器如果只是clearInterval()那会关掉所有的定时器,有时我们只需要关掉一个而已,所以要定义一个变量来存放定时器

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

例子1

JS定时器用法分析【时钟与菜单中的应用】

时刻变化的时钟,且数字是由图片代替的

思路:

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

二级菜单

JS定时器用法分析【时钟与菜单中的应用】

一级菜单和二级菜单间有缝隙,如果仅仅是移入一级菜单时二级显示,移除时隐藏,那么移到缝隙间还是会显示不出来(或者说来不及进入二级菜单,二级菜单就没了),所以需要一个定时器,在离开一级菜单时,不让二级马上消失,而是缓慢隐藏,然后在进入二级菜单时,清除这个定时器,他就不会消失了,另外离开二级菜单时,还是要让它消失,不然会永远存在

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 相关文章推荐
新手常遇到的一些jquery问题整理
Aug 16 Javascript
javascript预览上传图片发现的问题的解决方法
Nov 25 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
May 05 Javascript
js综合应用实例简单的表格统计
Sep 03 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
May 08 Javascript
javascript中undefined与null的区别
Aug 16 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
Jan 22 Javascript
原生JS实现的双色球功能示例
Feb 02 Javascript
vue脚手架搭建过程图解
Jun 06 Javascript
js getBoundingClientRect使用方法详解
Jul 17 Javascript
JS实现网页烟花动画效果
Mar 10 Javascript
JS如何实现基于websocket的多端桥接平台
May 14 Javascript
vue.js实现仿原生ios时间选择组件实例代码
Dec 21 #Javascript
详解jQuery的表单验证插件--Validation
Dec 21 #Javascript
JS无缝滚动效果实现方法分析
Dec 21 #Javascript
简单实现JS计算器功能
Dec 21 #Javascript
jQuery实现立体式数字滚动条增加效果
Dec 21 #Javascript
Bootstrap Search Suggest使用例子
Dec 21 #Javascript
简单实现Bootstrap标签页
Aug 09 #Javascript
You might like
第十二节 类的自动加载 [12]
2006/10/09 PHP
php smarty模版引擎中的缓存应用
2009/12/02 PHP
PHP中的self关键字详解
2019/06/23 PHP
PHP使用观察者模式处理异常信息的方法详解
2019/09/24 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
js数组去重的5种算法实现
2015/11/04 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
jQuery中hover与mouseover和mouseout的区别分析
2015/12/24 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
浅谈js中的bind
2019/03/18 Javascript
Python实现获取网站PR及百度权重
2015/01/21 Python
使用Python实现一个简单的项目监控
2015/03/31 Python
Python httplib模块使用实例
2015/04/11 Python
Python实现线程池代码分享
2015/06/21 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
2016/01/20 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
自荐书封面下载
2013/11/29 职场文书
团员的自我评价
2013/12/01 职场文书
利群广告词
2014/03/20 职场文书
授权委托书怎么写
2014/04/03 职场文书
演讲稿格式
2014/04/30 职场文书
医院保洁服务方案
2014/06/11 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
先进基层党组织材料
2014/12/25 职场文书
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python