近来发现一个新的css属性,它是一个于javascript相关的属性:pointer-events。直译为指针事件,当把值设置为none后,他有如下相关特性。
- 阻止用户的点击动作产生任何效果;
- 阻止缺省鼠标指针的显示;
- 阻止CSS里的hover和active状态的变化触发事件;
- 阻止JavaScript点击动作触发的事件;
来看一下的都有哪些属性
pointer-events:auto | none | visiblepainted | visiblefill | visiblestroke | visible | painted | fill | stroke | all
默认值:auto
适用于:所有元素
继承性:有
动画性:否
计算值:指定值
使用pointer-events
来阻止元素成为鼠标事件目标不一定意味着元素上的事件侦听器永不会触发。如果元素后代明确指定了pointer-events
属性并允许其成为鼠标事件的目标,那么指向该元素的任何事件在事件传播过程中都将通过父元素,并以适当的方式触发其上的事件侦听器。当然位于屏幕上在父元素上但不在后代元素上的鼠标活动都不会被父元素和后代元素捕获(将会穿过父元素而指向位于其下面的元素)。
对应的脚本特性为pointerEvents。
之后来看一下他的具体兼容性,由于是新的css3特性,他对于浏览器的版本要求也是比较高的。
IE | Firefox | Chrome | Safari | Opera | iOS Safari | Android Browser | Android Chrome |
---|---|---|---|---|---|---|---|
11 | 3.6+ | 4.0 | 6.0 | 15.0 | 6.0 | 2.1 | 18.0 |
然后为什么说这个属性非常的实用呢,在许多网站上过节的时候页面最上层会用canvas绘制的雨、雪花,避免这些悬浮物遮挡住页面从而影响鼠标点击,可以使用pointer-events=none属性,让这些上方的canvas不会遮挡鼠标事件,让鼠标事件可以穿透上方的canvas来点击页面