微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

css3 pointer-events阻止hover、active、onclick等触发事件

pointer-events css 属性指定在什么情况下 (如果有) 某个特定的图形元素可以成为鼠标事件的 target。

/* 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;

当此属性未指定时,visiblePainted值的相同特征适用于 SVG(可缩放矢量图形) 内容

除了指示该元素不是鼠标事件的目标之外,值none表示鼠标事件“穿透”该元素并且指定该元素“下面”的任何东西。

初始值 auto
适用元素 all elements
是否是继承属性 yes
适用媒体 visual
计算值 as specified
Animation type discrete
正规顺序 the unique non-ambiguous order defined by the formal grammar

pointer-events 更像是JavaScript,它能够:

  • 阻止用户的点击动作产生任何效果

  • 阻止缺省鼠标指针的显示

  • 阻止css里的 hover 和 active 状态的变化触发事件

  • 阻止JavaScript点击动作触发的事件

 

实际代码使用中案例:

1、提交页面,提交按钮点击后,添加这个样式属性(),来防止重复提交。 @camnpr

2、一些层的绝对定位,覆盖按钮,穿透可以点击它。等等。

来看下具体用法

pointer-events:  auto | none | visiblePainted | visibleFill | visiblestroke | visible | painted | fill | stroke | all | inherit

pointer-events属性有很多值,但是对于浏览器来说,只有auto和non两个值可用,其它的几个是针对SVG的(本身这个属性就来自于SVG技术)。

 

pointer-events属性值详解

  • auto——效果和没有定义pointer-events属性相同,鼠标不会穿透当前层。在SVG中,该值和visiblePainted的效果相同。

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

  • 其它属性值为SVG专用,这里不再多介绍了。

 

浏览器兼容性

Firefox 3.6+和chrome 2.0+ 以及safari 4.0+都支持这个CSS3属性,IE6/7/8/9都不支持(IE11又支持,不过很好的一点是在ie中给a加disabled 点击事件自动无效。),Opera在SVG中支持。 但是 属性html中 不支持 

 

 
 
 
 

豌豆资源搜索网站https://55wd.com 电脑刺绣绣花厂 ttp://www.szhdn.com

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。