css3的pointer-events属性(定位元素的鼠标事件穿透)

it2024-12-17  14

简单来说就是当我们给一个元素加了定位属性后,他就遮住了下面的元素,下方的元素的鼠标事件就不会触发,为了触发定位元素下方元素的鼠标事件,加pointer-events: none;

现在问题是:当定位元素上也有操作,现在定位元素的上的操作不生效了。解决方法: pointer-events: auto;(注意:这个要加在定位元素的操作上,颗粒度越小越好,防止它覆盖上面的元素)

当然pointer-events还有其他属性,没有研究过,在下面,各位自己看一下(我就是记录自己遇到问题的一个小白,有什么建议多指教,多谢各位大佬)

pointer-events属性被指定为从下面的值列表中选择的一个关键字。

auto

与pointer-events属性未指定时的表现效果相同,对于SVG内容,该值与visiblePainted效果相同

none

元素永远不会成为鼠标事件的target。但是,当其后代元素的pointer-events属性指定其他值时,鼠标事件可以指向后代元素,在这种情况下,鼠标事件将在捕获或冒泡阶段触发父元素的事件侦听器。

visiblePainted

只适用于SVG。元素只有在以下情况才会成为鼠标事件的目标:

visibility属性值为visible,且鼠标指针在元素内部,且fill属性指定了none之外的值visibility属性值为visible,鼠标指针在元素边界上,且stroke属性指定了none之外的值

visibleFill

只适用于SVG。只有在元素visibility属性值为visible,且鼠标指针在元素内部时,元素才会成为鼠标事件的目标,fill属性的值不影响事件处理。

visibleStroke

只适用于SVG。只有在元素visibility属性值为visible,且鼠标指针在元素边界时,元素才会成为鼠标事件的目标,stroke属性的值不影响事件处理。

visible

只适用于SVG。只有在元素visibility属性值为visible,且鼠标指针在元素内部或边界时,元素才会成为鼠标事件的目标,fill和stroke属性的值不影响事件处理。

painted

只适用于SVG。元素只有在以下情况才会成为鼠标事件的目标:

鼠标指针在元素内部,且fill属性指定了none之外的值鼠标指针在元素边界上,且stroke属性指定了none之外的值

visibility属性的值不影响事件处理。

fill

只适用于SVG。只有鼠标指针在元素内部时,元素才会成为鼠标事件的目标,fill和visibility属性的值不影响事件处理。

stroke

只适用于SVG。只有鼠标指针在元素边界上时,元素才会成为鼠标事件的目标,stroke和visibility属性的值不影响事件处理。

all

只适用于SVG。只有鼠标指针在元素内部或边界时,元素才会成为鼠标事件的目标,fill、stroke和visibility属性的值不影响事件处理。

最新回复(0)