通过设置 pointer-events: none,可以让绝对定位的遮罩层不拦截鼠标事件,使底层表格单元格等元素正常响应 mousemove 等交互事件。
通过设置 `pointer-events: none`,可以让绝对定位的遮罩层不拦截鼠标事件,使底层表格单元格等元素正常响应 `mousemove` 等交互事件。
在 Web 开发中,常需在表格上方叠加一个半透明、绝对定位的 div(例如用于高亮、遮罩或拖拽辅助),但默认情况下该 div 会捕获所有鼠标事件(如 mousemove、click),导致其下方的表格单元格无法被正确识别。
解决方法非常简洁:只需为该覆盖层 div 设置 CSS 属性 pointer-events: none。该属性会使元素完全不参与鼠标事件的捕获与分发,事件将直接穿透到其下方的 DOM 元素(如 <td> 单元格),从而恢复 mousemove 的正常行为。
✅ 示例代码:
<table id="myTable"> <tr><td>Cell 1</td><td>Cell 2</td></tr> <tr><td>Cell 3</td><td>Cell 4</td></tr></table><!-- 覆盖层:半透明、绝对定位,但不阻断鼠标事件 --><div id="overlay" style=" position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 0, 0.2); z-index: 1; pointer-events: none; /* ✅ 关键:允许事件穿透 */"></div>
document.getElementById('myTable').addEventListener('mousemove', (e) => { const cell = e.target.closest('td'); if (cell) { console.log('Hovering over:', cell.textContent); }});
⚠️ 注意事项:
总之,pointer-events: none 是实现视觉覆盖与交互穿透的理想方案,简洁、高效且语义清晰。
virtualbox下怎么实现ubuntu20.04开机自动挂载共享文件夹?
ubuntu20.04怎么开启护眼模式? ubuntu夜间模式的设置方法
如何在Ubuntu 20.04上安装Microsoft Edge浏览器
Ubuntu20.10优麒麟触摸手势有哪些? 优麒麟系统新增手势汇总
优麒麟20.04.1发布 更新内容汇总(附下载)
Mermaid Visual Editor 如何同步可视化操作与 Mermaid 源码?