在项目中,当需要展示一个元素在最顶层,但又不想让它影响下层的交互,可以pointer-events:none

pointer-events介绍

pointer-events: auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit
属性值auto 、none用于元素是否可以接收事件,上面其它的属性和我们没关系,是svg相关的。

  • auto — 默认值auto,鼠标不会穿透当前层。
  • none — 元素不再是鼠标事件的目标,鼠标不再监听当前层而去监听下面的层中的元素。但如果它的子元素设置了pointer-events为其它值,比如auto,鼠标还是会监听这个子元素的。

pointer-events使用

1. auto和none可以配合着用

比如一个环形饼图的组件,环外和环内点击时触发的是下层元素,就可以先在组件的环外、环上、环内元素上,依次设置none、auto、none。

2. 有些场景使用pointer-events:none,非常有效。

  • <a>标签,设置了自动跳转,通过设置pointer-events就可以动态禁用<a>的点击事件。
  • 滚动列表需要一个渐变色蒙层,这个蒙层又不能影响列表的操作 -- 设置 pointer-events就很有用

pointer-events兼容性

chrome、Edge是支持的,IE要11。

IE9等某些浏览器不支持,浏览器是否支持pointer-events,可以通过下面方法验证:

 1   isSupportPointerEvents() {
2 var dummy = document.createElement('_');
3 if (!('pointerEvents' in dummy.style)) return false;
4 dummy.style.pointerEvents = 'auto';
5 dummy.style.pointerEvents = 'x';
6 document.body.appendChild(dummy);
7 var isSupported = getComputedStyle(dummy).pointerEvents === 'auto';
8 document.body.removeChild(dummy);
9 return isSupported;
10 }

参考列表:

CSS 点击穿透pointer-events的更多相关文章

  1. 移动开发之fastclick 点击穿透

    穿透(点穿)是在mobile各种浏览器上发生的常见的bug.可能是由click事件的延迟(300ms)或者事件冒泡导致 现象:在A页面中有个 btn1<或a标签>,在B页面中有个 btn2 ...

  2. 移动端的300ms延迟和点击穿透

    移动端300ms延迟:假定这么一个场景.用户在 浏览器里边点击了一个链接.由于用户可以进行双击缩放或者双击滚动的操作,当用户一次点击屏幕之后,浏览器并不能立刻判断用户是确实要打开这个链接,还是想要进行 ...

  3. 点击穿透bug · Jaywii

    微信点击穿透Bug 问题描述:在移动端为了去除点击延迟引入了fast-click,然而在房贷计算器的开发中遇到了这样一个bug,用户点击了select之后,微信在弹出选择器之后会瞬间因为约300ms的 ...

  4. 浏览器 Pointer Events

    前言 Pointer Events是一套触控输入处理规格,支持Pointer Events的浏览器包括了IE和Firefox,最近Chrome也宣布即将支持该处理规则. PointerEvent Po ...

  5. 聊聊click延迟和点击穿透

    博客原文地址:Claiyre的个人博客 https://claiyre.github.io/ 如需转载,请在文章开头注明原文地址 移动端click事件被延迟 移动端的开发经常需要监听用户的双击行为,所 ...

  6. CSS中cursor的pointer 与 hand(转)

    CSS中cursor的pointer 与 hand 转载 2015年12月25日 16:18:36 标签: cursorpointer / cursorhand 1781 cursor:hand 与 ...

  7. WPF的点击穿透

    1.background 为{x:null} 或  鼠标点击会穿透,如果不想让一个透明的border点击穿透,设置透明色Transparent时就可以点到这个看起来透明的border 2.当依赖属性I ...

  8. Qt 不规则窗体 – 鼠标点击穿透(Linux也可以,有对x11的配置的方法)

    之前写过如何用 Qt 现成的方法写出无边框半透明的不规则窗体:<Qt 不规则窗体 – 无边框半透明> 其实有一个很特殊的窗体属性一直以来都伴随着不规则窗体出现,这就是本文要介绍的鼠标点击穿 ...

  9. CSS水印“点击穿透”

随机推荐

  1. SQL Server触发器备份后还原

    测试环境SQL Server 2012 select a.definition , b.name,b.is_disabled from sys.sql_modules a inner join sys ...

  2. linux命令基本操作

    chmod 命令 : chmod -R 755 tools_command/ 解释 : -R 为递归遍历tools_command文件夹, chmod 755修改权限: 查看所有用户 1.cat /e ...

  3. .net创建、发布、引用webservice项目

    创建webservice引用 增加代码: 运行如下: 之后就可以发布我们的项目了,右击项目,选择发布: 此地址不要选择项目地址,另外创建一个地址: 至此,发布成功,接下来iis增加web网站: 这里i ...

  4. 转帖:弹性布局(display:flex;)属性详解

    它之所以被称为 Flexbox ,是因为它能够扩展和收缩 flex 容器内的元素,以最大限度地填充可用空间.与以前布局方式(如 table 布局和浮动元素内嵌块元素)相比,Flexbox 是一个更强大 ...

  5. mininet配置命令

    Mininet实验手册 一.安装 1.  直接使用带有完整软件的VM(略) 2.  源码安装 1)  下载 git clone git://github.com/mininet/mininet 2)  ...

  6. python数据结构转字符串_python2中字符不显示问题_python2_递归

    # encoding:utf-8 def get_str(data): """将python数据转化为肉眼可见的字符串 :param data: str.dict.lis ...

  7. GPU Skinning

    这个工具的作用是同一种角色在同屏里面出现一大堆时,可以大幅度的降低DrawCall.我试了一下,感觉挺有意思的,各位可以试试.它的原理实际上是把骨骼矩阵存在配置文件里面,然后通过特殊的shader,计 ...

  8. lua的一些封装方法

    获取点击屏幕坐标 1 function getTouchPosition() 2 local locationX, locationY 3 4 local listener = cc.EventLis ...

  9. 三天吃透MySQL面试八股文

    本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...

  10. 设计师必备:免费素材管理工具Billfish v3.0更新了!

    ​​Billfish是专门为设计师打造的图片收藏管理工具,可以轻松管理您的各种素材文件.Billfish是一个免费的软件,支持对大量的图片素材进行管理,提供多种快速的检索筛选功能,如颜色,格式,方向, ...