JS延时提示框实现方法详解


Posted in Javascript onNovember 26, 2015

本文实例讲述了JS延时提示框实现方法。分享给大家供大家参考,具体如下:

提示框功能:当鼠标指向头像时,弹出一个信息框,鼠标可移动到信息框,当鼠标离开头像时信息框消失,当鼠标离开信息框时信息框消失。

实现功能思路:

1、获取元素。
2、当鼠标指向Div1时,Div2显示。
3、当鼠标离开Div1时,使Div2延迟0.5秒消失,这样以便有时间把鼠标移到Div2。
4、当鼠标指向Div2时,Div2显示。因为第3步设置setTimeout使Div2消失,所以把用clearTimeout()把setTimeout清除了就可以实现Div2显示了。
5、当鼠标离开Div2时,使Div2延迟0.5秒消失,这样以便有时间把鼠标指向Div1。
6、第2步已经设置了鼠标指向Div1,Div2就显示,但由于第5步设置setTimeout使Div2消失,所以在第2步加上clearTimeout()把setTimeout清除了就可以实现Div2显示了。

JS代码

<script>
window.onload=function()
{
  var oDiv1=document.getElementById('div1');
  var oDiv2=document.getElementById('div2');
  time=null;
  oDiv1.onmouseover=function()
  {
    clearTimeout(time);
    oDiv2.style.display='block';  
  };
  oDiv1.onmouseout=function()
  {
    time=setTimeout(function(){
      oDiv2.style.display='none';
    },500);
  };
  oDiv2.onmouseover=function()
  {
    clearTimeout(time);
  };
  oDiv2.onmouseout=function()
  {
    time=setTimeout(function(){
      oDiv2.style.display='none';
    },500);
  };
};
</script>

由于代码看起来多差不多,可以简化如下:

<script>
window.onload=function()
{
  var oDiv1=document.getElementById('div1');
  var oDiv2=document.getElementById('div2');
  time=null;
  oDiv2.onmouseover=oDiv1.onmouseover=function()
  {
    clearTimeout(time);
    oDiv2.style.display='block';  
  };
  oDiv2.onmouseout=oDiv1.onmouseout=function()
  {
    time=setTimeout(function(){
      oDiv2.style.display='none';
    },500);
  };
};
</script>

HTML、CSS代码:

<div id="div1"></div>
<div id="div2"></div>
<style>
#div1{float:left;margin-right:10px;width:50px;height:50px;background:black;}
#div2{display:none;float:left;width:200px;height:200px;background:#0CF;}
</style>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
老鱼 浅谈javascript面向对象编程
Mar 04 Javascript
Javascript Math ceil()、floor()、round()三个函数的区别
Mar 09 Javascript
node.js中的fs.exists方法使用说明
Dec 17 Javascript
javascript中判断json的方法总结
Aug 27 Javascript
使用3D引擎threeJS实现星空粒子移动效果
Sep 13 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
Sep 21 Javascript
koa2实现登录注册功能的示例代码
Dec 03 Javascript
浅谈javascript中的prototype和__proto__的理解
Apr 07 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
Apr 11 Javascript
微信小程序缓存过期时间的使用详情
May 12 Javascript
小程序实现按下录音松开识别语音
Nov 22 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
May 10 Javascript
js使用cookie记录用户名的方法
Nov 26 #Javascript
Bootstrap每天必学之导航
Nov 26 #Javascript
js过滤HTML标签完整实例
Nov 26 #Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
Nov 26 #Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
Nov 26 #Javascript
Bootstrap每天必学之按钮
Nov 26 #Javascript
学习JavaScript设计模式(多态)
Nov 25 #Javascript
You might like
用php解析html的实现代码
2011/08/08 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
用jscript启动sqlserver
2007/06/21 Javascript
jQuery 处理表单元素的代码
2010/02/15 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
PyCharm 常用快捷键和设置方法
2017/12/20 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
少先队学雷锋活动月总结
2014/03/09 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
2016年元旦致辞
2015/08/01 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
2016党员党课心得体会
2016/01/07 职场文书
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL