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 相关文章推荐
extJs 常用到的增,删,改,查操作代码
Dec 28 Javascript
javascript异步编程的4种方法
Feb 19 Javascript
js实现仿购物车加减效果
Mar 01 Javascript
详解微信小程序 登录获取unionid
Jun 27 Javascript
iscroll实现下拉刷新功能
Jul 18 Javascript
基于Vue制作组织架构树组件
Dec 06 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
Mar 06 Javascript
解决jquery有正确返回值但不执行success函数的问题
Aug 20 jQuery
js限制input只能输入有效的数字(第一个不能是小数点)
Sep 28 Javascript
vue router 用户登陆功能的实例代码
Apr 24 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
Nov 05 Javascript
JavaScript中的宏任务和微任务详情
Nov 27 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
PHP has encountered an Access Violation
2007/01/15 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
php blowfish加密解密算法
2016/07/02 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
jQuery checkbox全选/取消全选实现代码
2009/11/14 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
Python实现远程调用MetaSploit的方法
2014/08/22 Python
Python检测数据类型的方法总结
2019/05/20 Python
解析python的局部变量和全局变量
2019/08/15 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
Python绘制动态水球图过程详解
2020/06/03 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
远程调用的原理
2014/07/05 面试题
社会实践心得体会
2014/01/03 职场文书
大学生先进事迹材料
2014/02/16 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
Nginx访问日志及错误日志参数说明
2021/03/31 Servers
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js