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 相关文章推荐
Javascript计算两个marker之间的距离(Google Map V3)
Apr 26 Javascript
js获取input标签的输入值实现代码
Aug 05 Javascript
JS取request值以及自动执行使用示例
Feb 24 Javascript
获取阴历(农历)和当前日期的js代码
Feb 15 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
Feb 25 Javascript
jQuery设置Easyui校验规则(推荐)
Nov 21 Javascript
JavaScript实现鼠标点击导航栏变色特效
Feb 08 Javascript
JavaScript实现获取远程的html到当前页面中
Mar 26 Javascript
对vue v-if v-else-if v-else 的简单使用详解
Sep 29 Javascript
点击按钮弹出模态框的一系列操作代码实例
Mar 29 Javascript
vue点击按钮动态创建与删除组件功能
Dec 29 Javascript
JavaScript中reduce()的5个基本用法示例
Jul 19 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下用rmdir实现删除目录的三种方法小结
2008/04/20 PHP
PHP中MD5函数使用实例代码
2008/06/07 PHP
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
php文件下载处理方法分析
2015/04/22 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
关于laydate.js加载laydate.css路径错误问题解决
2017/12/27 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
用python写asp详细讲解
2013/12/16 Python
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
Python 音频生成器的实现示例
2019/12/24 Python
Python开发之pip安装及使用方法详解
2020/02/21 Python
python如何写出表白程序
2020/06/01 Python
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
争论的故事教学反思
2014/02/06 职场文书
旅游投诉信范文
2015/07/02 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android