整理自gitHub笔记:CSS3:pointer-events: none;
的效果
一、背景
项目中要实现长按图片触发分享弹窗的功能,测试的时候发现长按图片会触发系统的弹窗(保存图片,分享图片等)。如何禁止系统的行为呢?
bing了一下发现pointer-events: none;
可以解决问题。
二、细说pointer-events: none;
2.1 语法
pointer-events: none;
表示元素不会对mouse/touch
相关事件作出响应。
2.2 pointer-events: none;
的效果
1. 不会触发鼠标相关的事件,以及相关的hover效果
- click
- touchStart
- touchMove
- touchEnd
- mouseMove
- mouseOver
- mouseLeave
- drag相关事件
2. 不影响事件冒泡、捕获,只是影响事件处理阶段
inner
元素被pointer-events: none;
。点击inner
元素虽然其不触发点击事件,但是其父元素outer
会触发点击事件。
3. 穿透效果
-
Front
元素被pointer-events: none;
。点击Front
元素虽然其不触发点击事件,但是其Z轴
底部的元素Backend
会触发点击事件。也不影响Z轴
底部的文本选择。 - 穿透效果应用场景:日期选择组件的渐变效果
上下两端的渐变效果一般使用伪元素覆盖上面,为了不影响滑动选择日期,可以给伪元素添加pointer-events: none;
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。