父子关系div移入移出 显示问题
来源:互联网 发布:php 用pack打包数据包 编辑:程序博客网 时间:2024/06/05 18:50
父子关系div 移入移出 显示问题
要求移入box时,延迟显示 son,移出隐藏
<div id="box"> <div id="son"></div></div><script>var box = document.getElementById('box');var big = document.getElementById('son');var timmer;box.onmouseover = big.onmouseover =function(){ clearTimeout(timmer); big.style.display="block";}box.onmouseout= big.onmouseout =function(){ timmer =setTimeout(function(){ big.style.display="none"; },300)}</script>
如果是这样的代码,会有一个问题,从 son 重新移入到 box时 子div还是会消失
所以重新写了测试的代码
<div id="box"> <div id="son"></div></div><script> var box=document.getElementById('box'); var son=document.getElementById('son'); var timmer=null; box.onmouseover= function(){ clearTimeout(timmer); son.style.display="block"; console.log('父元素 移入'); } son.onmouseover=function(){ clearTimeout(timmer); son.style.display="block"; console.log('子元素 移入'); } son.onmouseout=function(){ timmer = setTimeout(function () { son.style.display = "none"; }, 300); console.log('子元素 移除'); } box.onmouseout=function(){ timmer= setTimeout(function() { son.style.display = "none"; }, 300); console.log('父元素 移除'); }</script>
发现
最后从子元素移除,同时触发了父元素移除的 timmer定时器,所以产生了两个定时器,一次父元素移入的取消并不能行。发现问题的关键了,因为JS中的事件冒泡影响,所以在子元素移除事件中加一行取消冒泡即可
<div id="box"> <div id="son"></div></div><script> var box = document.getElementById('box'); var son = document.getElementById('son'); var timmer = null; box.onmouseover = function () { clearTimeout(timmer); son.style.display = "block"; console.log('父元素 移入'); } son.onmouseover = function () { clearTimeout(timmer); son.style.display = "block"; console.log('子元素 移入'); } son.onmouseout = function (e) { timmer = setTimeout(function () { son.style.display = "none"; }, 300); console.log('子元素 移除'); var e = e || event; //兼容ie e.stopPropagation(); //取消冒泡 } box.onmouseout = function () { timmer = setTimeout(function () { son.style.display = "none"; }, 300); console.log('父元素 移除'); }
这样就不会再出现上述问题了。
阅读全文
0 0
- 父子关系div移入移出 显示问题
- 鼠标移入显示移出消失
- div鼠标移入移出的方向判断
- jQuery事件-div的显示隐藏及鼠标的移入移出
- jQuery事件-div的显示隐藏及鼠标的移入移出
- jQuery事件-div的显示隐藏及鼠标的移入移出http://www.cnblogs.com/liuyanmin/p/5146544.html
- JavaScript 定时器 鼠标移入移出div颜色渐变效果
- 鼠标移入显示一个菜单列表 移出隐藏
- 鼠标移入移出,样式修改,显示隐藏提示消息
- 鼠标移入就显示弹框,移出弹框就消失
- 鼠标移入显示,移出隐藏动态网页实现
- 关于动态监测鼠标移入移出窗体问题的分析
- js中鼠标移入移出碰到的问题
- 鼠标移入移出事件
- 鼠标移入移出事件
- MFC鼠标移入移出事件
- Android:Activity移入移出效果
- 鼠标移入移出的代码
- 使用eclipse创建maven项目,spring4 mvc
- Visual Studio 2017中创建Windows桌面程序时的默认模板
- Java图形化界面登录窗口
- Python字符串和字节类型转换
- supper的常见错误
- 父子关系div移入移出 显示问题
- 浙工大
- JDBC数据集获得及处理
- Go Basic
- 简单记录一下最近学到的c++内容
- PCA python实现
- java学习初探十八之线程的创建和启动
- 文件打开,处理数据
- Leetcode: reorder-list