手机端 :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);

效果:

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

java开发视频批量混剪 java 视频合成

说明本文代码功能为,将同类多个MP4视频文件合并成一个视频文件 应用场景: 某些三方接口不支持传多个文件,继而需要合并成一个文件上传环境1、maven<!-- 视觉库处理包--> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</artifact