pointer-event:none的运用场景
- 问题: css里无法通过hover控制相邻的上一个兄弟元素的显隐,但又不希望父容器来控制子容器的显隐。此时就可以使用pointer-event来实现;
- 实现方法:在父容器css属性有pointer-event:none,在用于控制的子div上css属性有pointer-event:auto;
- 实现原理:任何元素设置pointer-event:none可以实现事件的禁用。父元素如果设置了pointer-event:none 并不意味着父元素上的事件侦听器永远不会被触发,当子元素上设置pointer-event值不是none, 那么都可以通过事件传播机制来触发父元素上的事件。
- 通用:当很多元素需要定位在一个父元素上面,需用到绝对定位、相对定位的元素,这样的话,这些元素就会盖住下面的父元素,以至于父元素无法操作。这时元素设置 pointer-events: none,然后父元素就可以操作了。但是操作区域本身却无法操作了,可以再给需要操作的元素区域设置为 pointer-events:auto。