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 相关文章推荐
js option删除代码集合
Nov 12 Javascript
让你的CSS像Jquery一样做筛选的实现方法
Jul 10 Javascript
工作需要写的一个js拖拽组件
Jul 28 Javascript
Javascript中自动切换焦点实现代码
Dec 15 Javascript
JS隐藏参数post传值实例
Apr 18 Javascript
js采用map取到id集合组并且实现点击一行选中一行
Dec 16 Javascript
NODE.JS跨域问题的完美解决方案
Oct 20 Javascript
Bootstrap CDN和本地化环境搭建
Oct 26 Javascript
Ajax 加载数据 练习代码
Jan 05 Javascript
React实现点击删除列表中对应项
Jan 10 Javascript
详解vue-router数据加载与缓存使用总结
Oct 29 Javascript
jQuery实现回到顶部效果
Oct 19 jQuery
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开发模式(简写版)
2007/03/15 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
JS实现仿新浪黄色经典滑动门效果代码
2015/09/27 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
Python ljust rjust center输出
2008/09/06 Python
Python中使用动态变量名的方法
2014/05/06 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
基于python实现从尾到头打印链表
2019/11/02 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
python 实现压缩和解压缩的示例
2020/09/22 Python
用python对oracle进行简单性能测试
2020/12/05 Python
Python中生成ndarray实例讲解
2021/02/22 Python
Django实现简单的分页功能
2021/02/22 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
校本教研工作制度
2014/01/22 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
图文详解nginx日志切割的实现
2022/01/18 Servers
Python中Matplotlib的点、线形状、颜色以及绘制散点图
2022/04/07 Python
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL