手机端 :active 样式不起作用的原因,如何解决

手机端 :active 样式不起作用的原因,如何解决

一、原因

很多时候我们在 PC 端使用很好的 :active 样式,在移动端却没有效果。
原因是:
:active 只有在 dom 元素被点击时,有 click 事件才会有的状态。
除了 PC 端的 click 事件,移动端有 touch 事件,并且 touch 相关事件的优先级要高于 click 事件,如果 touch 事件被取消,就不会有 click 事件,所以才会产生移动端点击时没有 :active样式的原因。

MDN 相关说明,查看 Event Order 一段:
https://developer.mozilla.org/en-US/docs/Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent

二、解决办法

如果你不需要在项目中使用 touch 事件,在 js 文件中添加如下内容,那么所有的 :active 相关的样式都会生效了。

document.addEventListener("touchstart", function() {},false);

效果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月ooOO

许个愿,我帮你实现

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值