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 相关文章推荐
利用javascript中的call实现继承
Jan 22 Javascript
dess中一个简单的多路委托的实现
Jul 20 Javascript
JS实现的一个简单的Autocomplete自动完成例子
Apr 16 Javascript
JavaScript事件委托的技术原理探讨示例
Apr 17 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
Nov 24 Javascript
详解AngularJs中$resource和restfu服务端数据交互
Sep 21 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
Apr 05 Javascript
js中变量的连续赋值(实例讲解)
Jul 08 Javascript
Javascript中Promise的四种常用方法总结
Jul 14 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
Nov 09 Javascript
浅谈JS和jQuery的区别
Mar 27 jQuery
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
Jul 22 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
php中iconv函数使用方法
2008/05/24 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
JavaScript 空位补零实现代码
2010/02/26 Javascript
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
2019/09/27 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
使用Node.js实现base64和png文件相互转换的方法
2020/03/11 Javascript
简单谈谈python的反射机制
2016/06/28 Python
Python标准模块--ContextManager上下文管理器的具体用法
2017/11/27 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
python 解压pkl文件的方法
2018/10/25 Python
NumPy 数组使用大全
2019/04/25 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
党课学习思想汇报
2014/01/02 职场文书
银行员工辞职信范文
2014/01/20 职场文书
庆元旦广播稿
2014/02/10 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
组织生活会发言材料
2014/12/15 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
个人收入证明格式
2015/06/24 职场文书
七年级作文之下雨天
2019/12/23 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技