请教:脚本模拟穿透层效果(pointer-events: none)出现的问题
用脚本模拟一个这样的效果,有2个问题没有解决,特请教一下,谢谢!
1:点击B层时,自动触发A层的行为,B层是什么事件行为,A层就触发什么事件行为;
2:解决IE9-IE7不兼容问题。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo Pos</title>
<style type="text/css">
*{ margin: 0; padding: 0; border: 0; list-style: none; font-size: 1em; font-weight: 100; font-style: normal; }
body{ padding: 1em; color: #888; }
/**********/
.sels{ display: block; margin: 1em auto; padding: 10px; border: 1px solid #ddd; position: relative; }
.selectValue{ width: 200px; height: 30px; text-align: center; line-height: 30px; border-radius: 4px; border: 1px solid #bbb; background: #eee; background: -webkit-linear-gradient(top,#fff,#ddd); position: absolute; left: 10px; top: 10px; z-index: 100; /*pointer-events: none; CSS3实现此效果*/ }
.selectA{ width: 198px; height: 28px; margin: 1px 0 0 1px; }
</style>
</head>
<body>
<form action="#" class="sels">
<p class="selectValue" id="tecVal">请选择</p>
<select name="tec" id="tec" class="selectA">
<option>JavaScript</option>
<option>HTML5</option>
<option>CSS3</option>
<option>C++</option>
<option>C</option>
</select>
</form>
<script type="text/javascript">
function obj(id){ return document.getElementById(id); }
var tecVal=obj("tecVal");
var tec=obj("tec");
function noPointerEvents(em){
em.onclick=function(e){
this.style.display="none";
var x=e.pageX,y=e.pageY,under=document.elementFromPoint(x,y);
this.style.display="";
e.stopPropagation();
e.preventDefault();
alert(under.innerHTML);
//触发under,触发类型为e.type;
};
}
window.onload=function(){ noPointerEvents(tecVal); };
</script>
</body>
</html>
相关推荐
使用CSS的pointer-events属性实现鼠标穿透效果的神奇技巧
当pointer-events的值设置为none之后,浏览器将不会获得鼠标在当前位置的层上的点击事件,而造成鼠标穿透的效果!下面就来为大家展开讲解一下使用CSS的pointer-events属性实现鼠标穿透效果的神奇技巧
对vue中的事件穿透与禁止穿透实例详解
今天小编就为大家分享一篇对vue中的事件穿透与禁止穿透实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
css不常见属性之pointer-events的使用方法
MDN 上介绍为 CSS 属性指定在什么情况下 (如果有) 某个特定的图形元素可以成为鼠标事件的 target。 pointer-events 属性值有: /* Keyword values */ pointer-events: auto; pointer-events: none; pointer-events: visiblePainted; /* SVG only */ pointer-events: visibleFill; /* SVG only */ pointer-events: visibleStroke; /* SVG only */ pointer-events:
详解CSS pointer-events属性的使用
主要介绍了CSS pointer-events属性的使用,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
CSS3 pointer-events属性解析[项目代码]
本文详细介绍了CSS3中的pointer-events属性,该属性用于控制DOM元素是否成为鼠标事件的目标。文章首先解释了pointer-events的基本概念,即允许或禁止DOM元素的鼠标事件(如点击、悬停等)。接着,分析了其具体属性值,包括auto、none等,并重点说明了none值的穿透效果,即鼠标事件会穿透当前层,监听下一层的元素。此外,文章还提供了实际代码案例,展示了如何通过pointer-events禁止点击或实现点击穿透效果,并讨论了子元素属性继承与覆盖的问题。最后,作者列出了该属性的浏览器兼容性信息,为开发者提供了实用的参考。



