JS延时器提示框的应用实例代码解析


Posted in Javascript onApril 27, 2016

废话不多说了,直接给大家贴代码了,具体代码如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>延时显示提示框</title>
<style>
#div1 {
float: left;
width: 60px;
height: 60px;
background-color: aqua;
}
#div2 {
position: relative;
float: left;
margin: 0 10px;
width: 200px;
height: 200px;
background-color: #cccccc;
display: none;
}
</style>
<script>
window.onload = function () {
var oDiv1 = document.getElementById('div1');
var oDiv2 = document.getElementById('div2');
var timer = null;
// oDiv1.onmouseover = function () {
// clearTimeout(timer);
// oDiv2.style.display = 'block'; //鼠标移入div1时显示div2
// };
//
// oDiv1.onmouseout = function () {
// timer = setTimeout(function () {
// oDiv2.style.display = 'none'; //鼠标移除div1时隐藏div2
// }, 500); //为了从div1移入div2,所以移出div1时div2隐藏应该有一个延时设置
// };
//
// oDiv2.onmouseover = function () {
// clearTimeout(timer); //清除延时器设置,当鼠标移入div2时,div2应当显示
// };
//
// oDiv2.onmouseout = function () {
// timer = setTimeout(function () {
// oDiv2.style.display = 'none'; //当鼠标移出div2时,div2应当隐藏
// }, 500); //当鼠标移出div2并移入div1时,div2会闪烁一下再显示,设置一个延时,清除闪烁的效果;
// // 但是设置延时器之后,鼠标移入div1时,div2却隐藏了,原因是setTimeout,
// // 应当清除延时器,在oDiv1.onmouseover事件中添加,清除延时器的代码
// };
// 由于这四个事件中代码两两对应地相同或相似,可以做如下简化处理:
oDiv1.onmouseover = oDiv2.onmouseover = function () {
clearTimeout(timer);
oDiv2.style.display = 'block';
/* 鼠标移入div1时显示div2,虽然oDiv2.onmouseover事件中没有写oDiv2.style.display = 'block';
但是实际上oDiv2是'block'状态,多写一句代码没有实质性影响*/
};
oDiv1.onmouseout = oDiv2.onmouseout = function () {
timer = setTimeout(function () {
oDiv2.style.display = 'none'; //鼠标移除div1时隐藏div2
}, 500); //为了从div1移入div2,所以移出div1时div2隐藏应该有一个延时设置
};
// 简化后的代码执行结果跟前面的代码效果完全一致.
}
</script>
</head>
<body>
<h2>延时提示框</h2>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>

延时提示框编写时需要注意的点都记录在注释当中,逐个对照注意一下,这个功能看过视频教程之后实现起来比较顺畅,原因是在编写代码之前对所需功能做了一个列表按照列表一一实现,出现问题再进行相应的调整比上来直接写代码强多了。

Javascript 相关文章推荐
js通过地址栏给action传值(中文乱码全是问号)
May 02 Javascript
js键盘上下左右键怎么触发function(实例讲解)
Dec 14 Javascript
javascript数组输出的两种方式
Jan 13 Javascript
JavaScript 匿名函数和闭包介绍
Apr 13 Javascript
Javascript节点关系实例分析
May 15 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
Sep 02 Javascript
微信小程序链接传参并跳转新页面
Nov 29 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
Oct 25 Javascript
微信小程序拍照和摄像功能实现方法示例
Feb 01 Javascript
VUE兄弟组件传值操作实例分析
Oct 26 Javascript
LayUI+Shiro实现动态菜单并记住菜单收展的示例
May 06 Javascript
react中useState使用:如何实现在当前表格直接更改数据
Aug 05 Javascript
基于JS实现Android,iOS一个手势动画效果
Apr 27 #Javascript
requireJS使用指南
Apr 27 #Javascript
vue,angular,avalon这三种MVVM框架优缺点
Apr 27 #Javascript
浏览器兼容的JS写法总结
Apr 27 #Javascript
Vue.js基础知识汇总
Apr 27 #Javascript
JS onkeypress兼容性写法详解
Apr 27 #Javascript
使用vue.js开发时一些注意事项
Apr 27 #Javascript
You might like
综合图片计数器
2006/10/09 PHP
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/01/13 Javascript
js的闭包的一个示例说明
2008/11/18 Javascript
jquery中常用的SET和GET
2009/01/13 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
JavaScript数组Array对象增加和删除元素方法总结
2015/01/20 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
JSON生成Form表单的方法示例
2018/11/21 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
个人简历自我鉴定
2013/10/11 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
房屋买卖协议书
2014/04/10 职场文书
升职演讲稿范文
2014/05/23 职场文书
推荐信范文大全
2015/03/27 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python
golang语言指针操作
2022/04/14 Golang