🖱️ CSS Pointer Events 演示工具

交互式探索所有 pointer-events 属性值,理解事件穿透、SVG 特有行为与实际应用场景

📋 Pointer Events 属性值总览

pointer-events 属性定义元素在何种情况下可以成为鼠标事件的目标。以下是所有可用值:

auto

HTML + SVG

默认值。元素正常响应鼠标事件,行为由浏览器决定。

💡 默认行为,无需特别设置

none

HTML + SVG

元素永远不会成为鼠标事件的目标。事件会"穿透"到下层元素。

💡 加载遮罩、装饰性覆盖层、禁用交互

visiblePainted

仅 SVG

SVG 默认值。仅当 visibility 为 visible 且鼠标在填充区域(fill 非 none)或描边区域(stroke 非 none)上时响应。

💡 SVG 图形的默认交互行为

visibleFill

仅 SVG

仅当 visibility 为 visible 且鼠标在填充区域上时响应,不管 fill 是否设置。

💡 只需要填充区域可点击的 SVG

visibleStroke

仅 SVG

仅当 visibility 为 visible 且鼠标在描边区域上时响应,不管 stroke 是否设置。

💡 只需要描边可点击的 SVG 路径

visible

仅 SVG

仅当 visibility 为 visible 时响应,不管 fill 和 stroke 的值。

💡 可见即可交互的 SVG 元素

painted

仅 SVG

鼠标在填充区域(fill 非 none)或描边区域(stroke 非 none)上时响应,不管 visibility。

💡 不考虑可见性的绘制区域交互

fill

仅 SVG

鼠标在填充区域上时响应,不管 fill 和 visibility 的值。

💡 填充区域始终可交互

stroke

仅 SVG

鼠标在描边区域上时响应,不管 stroke 和 visibility 的值。

💡 描边区域始终可交互

all

仅 SVG

只要鼠标在填充或描边区域上就响应,不管 fill、stroke、visibility。

💡 SVG 元素始终可交互

inherit

HTML + SVG

继承父元素的 pointer-events 值。

💡 子元素跟随父元素的交互策略

👆 点击穿透演示

当上层元素设置 pointer-events: none 时,鼠标事件会穿透到下层元素。切换开关体验差异。

🔄 点击穿透开关

pointer-events: none(事件穿透 ✓)
覆盖层
👆 尝试点击上方的按钮

🎭 实际应用:加载遮罩

加载中...

遮罩阻止交互(pointer-events: auto)

🎯 悬停效果演示

不同 pointer-events 值下的 hover 行为差异。将鼠标悬停在各个卡片上观察效果。

🖱️ Hover 行为对比

pointer-events: auto
auto
可悬停 · 可点击
🚫
pointer-events: none
none
不可悬停 · 不可点击
🔘
正常按钮
auto
hover 效果正常
🎨
可点击变色
auto
点击试试

🔀 动态切换 pointer-events

点击按钮切换下方区域的 pointer-events 值:

🖱️
悬停和点击这个区域
当前值: auto

🔷 SVG Pointer Events 演示

SVG 元素拥有更多 pointer-events 值,可以精确控制填充区域和描边区域的事件响应。

visiblePainted(SVG 默认)

点击填充或描边区域

仅 fill≠none 和 stroke≠none 的可见区域响应

visibleFill

fill=none 但填充区域仍可点击 点击圆内部试试

填充区域始终响应(不管 fill 值)

visibleStroke

stroke=none 描边区域仍可点击

描边区域始终响应(不管 stroke 值)

all

fill=none stroke=none 但仍然可以点击!

所有区域始终响应,无视一切

painted

visibility: hidden 隐藏但仍可点击!

不管 visibility,绘制区域响应

none

完全不响应任何事件

元素完全忽略鼠标事件

📚 叠层元素事件传递

多层叠加元素中,pointer-events 控制事件如何在层级间传递。点击不同层观察事件冒泡。

🏗️ 三层叠加演示

三个叠加的层,分别可以设置不同的 pointer-events 值:

第一层 (底) 🔵
第二层 (中) 🔴
第三层 (顶) 🟣 pointer-events:none
👆 点击叠层区域,观察哪一层接收到事件

💻 CSS 代码生成器

选择 pointer-events 值,生成可直接使用的 CSS 代码,支持一键复制。

⚙️ 配置选项



📊 实时事件日志

所有交互事件都会记录在这里。在页面上进行各种操作,观察事件触发情况。

📝 事件记录

👋 欢迎!在页面上进行交互操作,事件将记录在这里...
图例: 🔵 点击事件 🔴 穿透事件 🟡 悬停事件 🟣 SVG 事件 🟢 层级事件