CSS pointer-events: none 去掉鼠标事件

CSS属性pointer-events: none可以使元素忽略鼠标事件,让链接、点击等交互无效化。该属性可用于任何元素,例如按钮或链接,以实现视觉上的禁用效果。虽然Firefox、Chrome和Safari较早版本已支持,但IE6到IE9不支持。使用时需要注意浏览器兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pointer-events: none 顾名思义,就是鼠标事件拜拜的意思。元素应用了该 CSS 属性,链接啊,点击啊什么的都变成了 “浮云牌酱油”。pointer-events: none 的作用是让元素实体 “虚化”。例如一个应用 pointer-events: none 的按钮元素,则我们在页面上看到的这个按钮,只是一个虚幻的影子而已,您可以理解为海市蜃楼,幽灵的躯体。当我们用手触碰它的时候可以轻易地没有任何感觉地从中穿过去。

 

大家都知道 input[type=text|button|radio|checkbox] 支持 disabled 属性,可以实现事件的完全禁用。如果其他标签需要类似的禁用效果,可以试试 pointer-events: none

pointer-events: none 去掉鼠标事件

pointer-events: auto 恢复鼠标事件

举个简单的例子:

复制代码<a href="http://sf.gg" style="pointer-events: none">click me</a>

这个链接,你是点不了的,并且 hover 也没有效果。(值得一提的是,仅仅是鼠标事件失效,用 tab 键还是可以选中该链接的,然后 enter 打开,这个时候可以去掉 a 标签的 href 属性,就不能让 tab 键选中了)

不局限于a链接,其它元素的鼠标事件(例如,div,p等)也可以去除。

 

例如:

<ul class="pager">
            <li id="btn-load-more" class="hidden"><a href="javascript:;">点击载入更多</a></li>
            <li id="btn-loading" class="hidden"><a href="javascript:;"><i class="fa fa-spinner fa-spin" aria-hidden="true"></i> 载入中</a></li>
</ul>
$.ajax({
                url: t,
                timeout: 5e3,
                success: function(t) {
                    if (c = !1,
                    $("#btn-loading").addClass("hidden"),
                    !t.data || 0 === t.data.length)
                        return $("#btn-load-more").removeClass("hidden"),
                        $("#btn-load-more").css("pointer-events", "none"),
                        $("#btn-load-more > a").html("没数据了 (〒︿〒)"),
                        void (l = !0);
                    var n = t.data;
                    "feed" === pageType || "channel" === pageType ? (i = t.message[0],
                    0 === a && (a = t.message[1])) : i = t.message,
                    $(".news-list").append(e(n)),
                    $(".tagPopup .tag").tagpopup(),
                    (u += 1) % 3 == 0 && $("#btn-load-more").removeClass("hidden")
                },
                error: function(t, e) {
                    c = !1,
                    $("#btn-loading").addClass("hidden"),
                    l = !0,
                    $("#btn-load-more").removeClass("hidden"),
                    $("#btn-load-more > a").html("请求超时,点击重新载入")
                }
            })

 

浏览器兼容性

Firefox 3.6+和chrome 2.0+ 以及safari 4.0+都支持这个CSS3属性,IE6/7/8/9都不支持,Opera在SVG中支持该属性但是HTML中不支持。好吧,还是有点儿悲催~~

 

参考

https://www.qianduan.net/css3-pointer-event-description/

https://blog.csdn.net/qq_42606051/article/details/81808133

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值