• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >div/css > 两个div叠加触发事件发生闪烁问题的解决方法

两个div叠加触发事件发生闪烁问题的解决方法

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-02

本文主要包含div/0 怎么解决,div之间的间隙解决,div失去焦点事件,给div添加点击事件,div点击事件等相关知识,佚名 希望在学习及工作中可以帮助到您

当鼠标移到div1上的时候,会出现div2。出现时div2在div1的上面,div2在出现后发生闪烁的问题。

于是开始找问题根源,发现原来是因为当我们触发div1的时候,div2出现,但是div2是存在于div1上面的,所以当div2出现后,会又一次触发下面div1的事件。通常我们可能给的事件是mouseover和mouseout,因为两个div叠加,div2出现时会多次触发div1的事件,所以就会发生闪烁问题。

解决:

1.一开始换mouseenter和mouseleave,但是发现还是一样的问题。

注:

mouseover()与mouseout()   表示鼠标移入和移出的时候触发,穿过子元素也会触发

mouseenter()和mouseleave()   表示鼠标穿过和穿出时候触发,穿过子元素不会触发
 

2.然后又添加e.stopPropagation();阻止冒泡和e.preventDefault();阻止默认事件,还是没有对症。

注:

e.stopPropagation();   //阻止冒泡之后,就不会形成冒泡向上传递了。

e.preventDefault();    //阻止默认行为

3.最后换为切换事件toggle切换事件也不顶事儿。

4.最终,如果想用js解决这个问题可能不容易,用js基本都会发生闪烁问题。那么我们使用css方式是不是可以解决呢?网上查了很多资料,发现也有很多人遇到这个问题,使用的是css中的hover来解决的。

具体使用方法:

给两个div的父元素,也就是共同包裹两个div的盒子一个hover,当父元素hover时,div2的样式设置为display:block;于是就顺利解决了这个问题,不会再出现闪烁问题。

下面上代码:

html部分:

</div>
  1. <div class="fudiv">  
  2.         <span class="div1"><img src="img/jixinjia-partner1.jpg" alt=""/></span>  
  3.         <div class="div2">  
  4.                  <div class="box6"><img src="img/qr-code-bg1%20(1).jpg" alt="p"/></div>  
  5.                  <p>扫码有奖</p>  
  6.         </div>  
  7. </div>  
</div> </div>

css部分:

</div>
  1. .fudiv:hover .div2 {   
  2.          display: block;   
  3. }   
  4.   
  5. .div2{   
  6.           display: none;   
  7. }  
</div> </div>

原本jquery部分,这种方式会出现闪烁问题

</div>
  1. <script>   
  2.     $(document).ready(   
  3.             function(){   
  4.                 $(".div1").mouseover(   
  5.                         function(e){   
  6.                             e.stopPropagation();   
  7.                             $(".div2").show();   
  8.                         }   
  9.                 );   
  10.                 $(".div1").mouseout(   
  11.                &nbs

您可能想查找下面的文章:

  • 两个div叠加触发事件发生闪烁问题的解决方法
  • 让某一个div固定在屏幕中的解决方法
  • div vertical-align不起作用解决办法

相关文章

  • 2017-06-02css div实现的遮罩层完美兼容IE6-IE9 FireFox
  • 2017-06-02div+css实现两列table效果示例
  • 2017-06-02使用z-index:-1 让一个层在所有层的下面当背景
  • 2017-06-02用HTML+CSS制作邮件网页的技巧总结
  • 2017-06-025个DIV并排在一行的一种方法
  • 2017-06-02不规则背景墙 CSS实现背景图片不规则的导航菜单
  • 2017-06-02DIV CSS制作的个性水平导航菜单实例
  • 2017-06-02背景偏移取图标的实现方法
  • 2017-06-02div图片垂直居中 如何使div中图片垂直居中
  • 2017-06-02div的两列居中放置并对每个div设计css样式

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • css 提示框 CSS实现带箭头的DIV提示框
    • 常用的清除浮动的方法
    • 纯CSS(无JS)实现的二级弹出菜单效果代码
    • 学习DIV+CSS网页布局之两列布局
    • 将一个DIV旋转的某一角度即90度/180度/270度及放大等问题
    • 怎样用最简单的html+css代码制作一颗跳动的心?
    • div vertical-align不起作用解决办法
    • div overflow 超出隐藏属性使用说明
    • 用HTML+CSS制作邮件网页的技巧总结
    • 屏蔽双击选中文字的方法兼容FF及以外的浏览器

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有