当前还在用js来控制鼠标点击事件时,我偶然接触到了一个css属性pointer-events,
这个属性很神奇,一个pointer-events:none居然能处理JS中的禁止鼠标点击事件。
而且还不止,具体搜索下时发现了几个效果
- 阻止用户的点击动作产生任何效果
- 阻止鼠标指针的显示
- 阻止CSS里的
hover和active状态的变化触发事件 - 阻止
JavaScript点击动作触发的事件 没想到吧,一个css属性,居然能完成这么多事情。 该属性可以拿来来禁止按钮的点击,这样的好处是样式上也得到了控制。当然,不要使用pointer-events来屏蔽一些十分关键的触发动作,因为这个样式可以通过浏览器控制台删除掉! 这个pointer-events属性有很多可以使用的属性值,但大部分都是针对SVG的:auto,none,visiblePainted*,visibleFill*,visibleStroke*,visible*,painted*,fill*,stroke*,all*, 以及inherit。其中none值能阻止点击、状态变化和鼠标指针变化。 同时,该属性有两点值得注意的事项 - 子元素可以声明
pointer-events来解禁父元素的阻止鼠标事件限制。 - 如果你对一个元素设置了click事件监听器,然后你移除了
pointer-events样式声明,或把它的值改变为auto,监听器会重新生效。基本上,监听器会遵守pointer-events的设定。 忘了还有个小贴士 在图表中,加入这个属性后,能解决移动的时候卡顿,亲测有效果!!!
最后的最后,还有个小问题,如果是从别处开始拖选文字,也会选中上面的问题。
这个时候请出一个新的css属性user-select:none配合使用完美的解决这个问题了!!!
最后面两个小贴士来自云简以及万兴两位大佬友情提供!在此感谢!!!