css点击div穿透(pointer-events使用笔记)

396 阅读1分钟

需求背景

a,b两个元素,a要覆盖在b的上面(绝对定位),看起来就只有一个元素。点击a的时候触发的是b身上的事件。

解决方法

a元素使用pointer-events:none; 穿透a,触发b的点击事件。

pointer-events

指定在什么情况下 (如果有) 某个特定的图形元素可以成为鼠标事件的target

属性的值:

属性值作用
auto默认值,与pointer-events属性未指定时的表现效果相同
none元素永远不会成为鼠标事件的target,但是,当其后代元素的pointer-events属性指定其他值时,鼠标事件可以指向后代元素,在这种情况下,鼠标事件将在捕获或冒泡阶段触发父元素的事件侦听器。
visiblePainted只适用于SVG
visibleFill只适用于SVG
visibleStroke只适用于SVG
visible只适用于SVG
painted只适用于SVG
fill只适用于SVG
stroke只适用于SVG
all只适用于SVG
实现简单的禁用
<a class="disable" href="http://baidu.com">百度一下</a>
.disable {
    pointer-events: none;
}