pointer-events: none; 指示该元素不是鼠标事件的目标,值none表示鼠标事件“穿透”该元素并且指定该元素“下面”的任何东西。说白了,就是让目标标签不接受鼠标事件(含click,mousemove,mouseup之类的)。我们来举个例子:
<style>
.parent {
width: 400px;
height: 400px;
padding: 50px;
margin: 100px;
background: #f20;
}
.child {
width: 200px;
height: 200px;
padding: 50px;
background: #ff0;
}
.child-child {
width: 50px;
height: 50px;
background: #00d;
}
</style>
<div class="parent" id="parent">
<div class="child">
<div class="child-child">
</div>
</div>
</div>
<script>
let parent = document.getElementById("parent");
parent.addEventListener("click", function(event) {
console.info(event.offsetX);
});
</script>
可以看到,我们事件是添加在 parent上的。但是点击鼠标到b或c上的时候相对的坐标变成了b或c,怎么办呢,一种解决办法是clientX,代码变成这样
<style>
.parent {
width: 400px;
height: 400px;
padding: 50px;
margin: 100px;
background: #f20;
}
.child {
width: 200px;
height: 200px;
padding: 50px;
background: #ff0;
}
.child-child {
width: 50px;
height: 50px;
background: #00d;
}
</style>
<div class="parent" id="parent">
<div class="child">
<div class="child-child">
</div>
</div>
</div>
<script>
let parent = document.getElementById("parent");
parent.addEventListener("click", function(event) {
console.info(event.clientX);
});
</script>
但是,如果不用clientX怎么解决这个问题呢?
pointer-events: none; 可以解决这个问题
如果我们就是不让child和child-child接受鼠标点击事件,那给它们的样式添加 pointer-events,代码修改后为:
<style>
.parent{
width:400px;
height:400px;
padding: 50px;
margin:100px;
background:#f20;
}
.child{
width:200px;
height:200px;
padding:50px;
background:#ff0;
pointer-events: none; /* 不接受鼠标事件 */
}
.child-child{
width:50px;
height:50px;
background:#00d;
pointer-events: none; /* 不接受鼠标事件 */
}
</style>
<div class="parent" id="parent">
<div class="child">
<div class="child-child">
</div>
</div>
</div>
<script>
let parent = document.getElementById("parent");
parent.addEventListener("click", function(event) {
console.info(event.offsetX);
});
</script>
网友回复
如何编写一个chrome插件实现多线程高速下载大文件?
cdn版本的vue在网页中出现typeerror错误无法找到错误代码位置怎么办?
pywebview能否使用webrtc远程控制共享桌面和摄像头?
pywebview6.0如何让窗体接受拖拽文件获取真实的文件路径?
如何在linux系统中同时能安装运行apk的安卓应用?
python有没有离线验证码识别ocr库?
各家的ai图生视频及文生视频的api价格谁最便宜?
openai、gemini、qwen3-vl、Doubao-Seed-1.6在ui截图视觉定位这款哪家更强更准?
如何在linux上创建一个沙箱隔离的目录让python使用?
pywebview如何使用浏览器自带语音识别与webspeech 的api?