当前位置:首页 > 前端 > HTML/CSS

css3 pointer-events设置元素事件触发条件和范围穿透

偶然意外的发现css可以通过pointer-events控制元素的事件是否可以在本身触发和触发范围,觉得日常的开发过程中应该会用到。

满足一下条件的设置 pointer-events CSS元素,可以实现指定某个特定的图形元素可以成为鼠标事件的 target。
  1. /* Keyword values */
  2. pointer-events: auto;
  3. pointer-events: none;
  4. pointer-events: visiblePainted; /* SVG only */
  5. pointer-events: visibleFill; /* SVG only */
  6. pointer-events: visibleStroke; /* SVG only */
  7. pointer-events: visible; /* SVG only */
  8. pointer-events: painted; /* SVG only */
  9. pointer-events: fill; /* SVG only */
  10. pointer-events: stroke; /* SVG only */
  11. pointer-events: all; /* SVG only */
  12. /* Global values */
  13. pointer-events: inherit;
  14. pointer-events: initial;
  15. pointer-events: unset;

语法介绍

auto

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

none

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

visiblePainted

只适用于SVG。元素只有在以下情况才会成为鼠标事件的目标:
  1、visibility属性值为visible,且鼠标指针在元素内部,且fill属性指定了none之外的值
  2、visibility属性值为visible,鼠标指针在元素边界上,且stroke属性指定了none之外的值

visibleFill

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

visibleStroke

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

visible

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

painted

只适用于SVG。元素只有在以下情况才会成为鼠标事件的目标:
  1、鼠标指针在元素内部,且fill属性指定了none之外的值
  2、鼠标指针在元素边界上,且stroke属性指定了none之外的值
visibility属性的值不影响事件处理。

fill

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

stroke

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

all

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

读后有收获可以支付宝请作者喝咖啡
< 上一篇 下一篇 >
文章评论
评论功能改造中...
湘ICP备15005320号-1 似懂非懂 Powered by doyo. 网站地图
返回顶部