如何实现让最上面的图层不影响下面图层的点击事件(可穿透图层的鼠标事件)

这篇具有很好参考价值的文章主要介绍了如何实现让最上面的图层不影响下面图层的点击事件(可穿透图层的鼠标事件)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

咱先来解决问题然后再了解是怎摸个原理在了解他的兼容性

一、解决方案:可以最上面图层的样式添加  pointer-events: none 

二、这个 pointer-events: none 具体是什么个东西呢?

pointer-events 直译为指针事件,该属性指定在什么情况下某个DOM可以成为鼠标事件的 target。

简而言之,就是允许/禁止DOM的鼠标事件(click事件、hover事件、mouse事件等鼠标事件)

他当然不止一个属性值还有其他的某些属性值。

/* Keyword values(属性值) */
pointer-events: auto;
pointer-events: none;
pointer-events: visiblePainted; /* SVG only */
pointer-events: visibleFill;    /* SVG only */
pointer-events: visibleStroke;  /* SVG only */
pointer-events: visible;        /* SVG only */
pointer-events: painted;        /* SVG only */
pointer-events: fill;           /* SVG only */
pointer-events: stroke;         /* SVG only */
pointer-events: all;            /* SVG only */

/* Global values(全局值)*/
pointer-events: inherit; (从其父元素继承此属性)
pointer-events: initial; (将此属性设置为其默认值)
pointer-events: unset;

三、看了是不是看不大懂只是属性值不一样 那咱就继续

pointer-events:visiblePainted

只适用于 SVG,元素只有在以下情况才会成为鼠标事件的目标:

  • visibility 属性值为 visible,且鼠标指针在元素内部,且 fill 属性指定了 none 之外的值
  • visibility 属性值为 visible,鼠标指针在元素边界上,且 stroke 属性指定了 none 之外的值
pointer-events: visibleFill

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

pointer-events: visibleStroke

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

pointer-events:visible

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

pointer-events:painted

只适用于 SVG,元素只有在以下情况才会成为鼠标事件的目标:

  • 鼠标指针在元素内部,且 fill 属性指定了 none 之外的值
  • 鼠标指针在元素边界上,且 stroke 属性指定了 none 之外的值

visibility 属性的值不影响事件处理。

pointer-events:fill

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

pointer-events:stroke

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

pointer-events:all

只适用于 SVG,只有鼠标指针在元素内部或边界时,元素才会成为鼠标事件的目标,fill、stroke 和 visibility 属性的值不影响事件处理。文章来源地址https://www.toymoban.com/news/detail-495895.html

四、兼容性  

  • IE  11+
  • Firefox  3.6+
  • Chrome 4.0+
  • Safari  6.0
  • Opera  15.0
  • iOS Safari 6.0
  • Android Browser 2.1+
  • Android Chrome 18.0+

到了这里,关于如何实现让最上面的图层不影响下面图层的点击事件(可穿透图层的鼠标事件)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • idea如何解决导入的项目不是Maven工程(文件下面没有蓝色的方格)二

    简介:         Maven项目导入,idea不识别项目 解决方法: 选中pom.xml -- 右键 -- Add as Maven Project  

    2024年02月16日
    浏览(63)
  • QGIS二次开发四:实现图层列表

    在实际开发中我们通常会遇到同时显示多个图层,并且还要实时显示和隐藏各图层的需求,如同 ArcGIS 的图层列表那样,界面左侧显示图层列表,列出当前已加载的所有图层,同时每个图层前面有复选框可以控制图层的显示/隐藏;界面右侧为画布,按图层列表的适当顺序显示

    2024年02月13日
    浏览(35)
  • Photoshop图层混合模式公式(Unity,CG实现)

    本文主要目的来自于在unity符合美术在ps里面的演示效果。 两个图层叠加到一起的效果,废话不多说直接看效果: 图片资源 在文章末尾 完整代码 也在末尾 目录 目录 Multiply 正片叠底  Screen 滤色  Color Dodge 颜色减淡  Color Burn 颜色加深 Linear Dodge 线形减淡 Linear Burn 线形加深

    2023年04月22日
    浏览(40)
  • 详解Windows系统下面如何查看CUDA、cuDNN、Python和各个软件包的版本

    这个题目网络上有很多的讲解,但是 查看CUDA、cuDNN版本 和 查看Python与自身各个软件包 是分开的,且cuDNN版本的查看方式似乎已经过时【截止2023-10-23】。由于自身需要且出于回馈 互联网大学 的目的,将相关内容重新整理在此篇博客中。 方法1:在Windows终端中通过以下3条下命

    2024年02月04日
    浏览(61)
  • windows如何修改user下面的文件夹名称

    1:win+r,输入regedit,回车,打开注册表 在上边的搜索框中输入:计算机HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList 然后找到最长的那个目录,双击,打开之后,在表中会看到C:User你的目录名称 修改他,比如我想改为,my,就直接输入my,然后保存就好了,这个

    2024年02月14日
    浏览(60)
  • 如何删除gitee远程仓库或者本地仓库里面的文件

    注意 : 删除前请先备份一份源文件 (否则可能会将您的源文件也一起删掉) 1.1想删除 远程仓库 里面的文件/文件夹 1.2文件/文件夹还没有上传(push)到gitee上面 适用问题 :鼠标右击删除后,还会出现文件或者文件夹 原因 :删除的不彻底 3.1 : 打开本地仓库所在位置,并右击鼠标,点击

    2024年02月16日
    浏览(68)
  • idea中如何恢复未提交到git上面的代码

    今天分享一个知识:最近在完成一个小组项目,因为在更新项目之前,没有提交自己的代码,导致自己写的代码全都丢失了,幸好发现了这个方法,不然一下午的功夫都白费了。 1. 首先在自己的项目上右键找到 Local History , 然后 Show History 2. 找到自己需要恢复的项目文件,右

    2024年04月25日
    浏览(51)
  • 微信小程序内实现图层的移动、缩放、旋转等其他编辑操作

    图层有3种 1、 背景图层 : 不可操作,只能替换,不可改变层级(最底层) 2、 图片图层 : 可移动,缩放(支持双指缩放),旋转,可改变层级 3、 文字图层 : 可移动,缩放(会改变文字大小,支持双指缩放),旋转,文字编辑区域拉伸长度和宽度(不会改变文字大小),

    2024年02月09日
    浏览(39)
  • 高德地图通过图层layer实现对海量点的可视化渲染

    在正文开始之前我先说说我为啥会使用这个技术来实现数据的可视化。 事情是这样的,我接手了一个项目,里面有个需求是在地图上标记出他们公司的产品的使用分布。我接手的时候呢,我前面的那位大哥是 使用marker点覆盖物,加上for循环来渲染实现的 ,可能他在维护这个

    2024年02月15日
    浏览(82)
  • Java切面的实现方式

    Java  切面( Aspect )是指在软件开发中,将某些横跨多个组件的功能,如日志记录、性能监控、权限控制等,抽象出来形成一个独立的模块,称之为切面。切面可以被应用到多个模块中,提供相同的功能。 Java 中实现切面的技术有多种,下面分别介绍。 1.  基于继承的切面实

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包