两个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 class="fudiv">
- <span class="div1"><img src="img/jixinjia-partner1.jpg" alt=""/></span>
- <div class="div2">
- <div class="box6"><img src="img/qr-code-bg1%20(1).jpg" alt="p"/></div>
- <p>扫码有奖</p>
- </div>
- </div>
css部分:
- .fudiv:hover .div2 {
- display: block;
- }
- .div2{
- display: none;
- }
原本jquery部分,这种方式会出现闪烁问题
- <script>
- $(document).ready(
- function(){
- $(".div1").mouseover(
- function(e){
- e.stopPropagation();
- $(".div2").show();
- }
- );
- $(".div1").mouseout(
- function(e){
- e.stopPropagation();
- $(".div2").toggle();
- }
- );
- }
- );
- </script>
以上这篇两个div叠加触发事件发生闪烁问题的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
原文地址:http://www.cnblogs.com/hanyining/p/5470581.html
相关文章
- 下面小编就为大家带来一篇DIV+CSS 清除浮动常用方法总结。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-05-06
- 这篇文章主要为大家详细介绍了CSS教程之div垂直居中的多种方法,还包括多行文本垂直居中的方法,感兴趣的小伙伴们可以参考一下2016-05-05
- 下面小编就为大家带来一篇关于div与>div的区别小结。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-05-04
- Divxdra1031.Dll2016-04-30
- 图片溢出div问题怎么解决?下面小编就为大家带来一篇图片溢出div问题的快速解决方法推荐。希望对大家有所帮助。一起跟随小编过来看看吧2016-04-28
- 下面小编就为大家带来一篇如何让一个div居于页面正中间【实现方法】。小编觉得挺不错的,现在分享个大家,也给大家做个参考2016-04-15
- 这篇文章主要介绍了css三种实现div在浏览器水平居中的方法,感兴趣的小伙伴们可以参考一下2016-04-14
- 下面小编就为大家带来一篇一个div在浏览器水平居中的实现方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。2016-04-14
- 这篇文章主要介绍了div+CSS制作类似微信对话气泡效果的实例总结,文中总结出了四种编写方式,并且对三角形的绘制有一个补充说明,需要的朋友可以参考下2016-04-01
最新评论