需求背景
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;
}