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 相关文章推荐
Ajax,UTF-8还是GB2312 eval 还是execScript
Nov 13 Javascript
读jQuery之十一 添加事件核心方法
Jul 31 Javascript
node.js中的fs.fstatSync方法使用说明
Dec 15 Javascript
浅谈JavaScript中运算符的优先级
Jul 07 Javascript
jquery SweetAlert插件实现响应式提示框
Aug 18 Javascript
js实现文字向上轮播功能
Jan 13 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
Jan 07 Javascript
浅谈vuex actions和mutation的异曲同工
Dec 13 Javascript
探索JavaScript中私有成员的相关知识
Jun 13 Javascript
p5.js绘制创意自画像
Nov 04 Javascript
JS函数进阶之继承用法实例分析
Jan 15 Javascript
Vuex实现购物车小功能
Aug 17 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高级OOP技术演示
2009/08/27 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
PHP答题类应用接口实例
2015/02/09 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
webpack 处理CSS资源的实现
2019/09/27 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
python批量修改文件编码格式的方法
2018/05/31 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
Python+Redis实现布隆过滤器
2019/12/08 Python
python中selenium库的基本使用详解
2020/07/31 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
《梅花魂》教学反思
2014/04/30 职场文书
管理提升方案
2014/06/04 职场文书
长城英文导游词
2015/01/30 职场文书
开票员岗位职责
2015/02/12 职场文书
2015年母亲节寄语
2015/03/23 职场文书
爱国教育主题班会
2015/08/14 职场文书
关于践行三严三实的心得体会
2016/01/05 职场文书
Django如何与Ajax交互
2021/04/29 Python
深入理解python协程
2021/06/15 Python