之前面试遇到过这个问题 现在总结记录下
Q:移动端浏览器在派发点击事件的时候,通常会出现300ms左右的延迟
A:原因: 移动端的双击会缩放导致click判断延迟
解决方式
- 禁用缩放
<meta name = "viewport" content="user-scalable=no" >
缺点: 网页无法缩放 - 更改默认视口宽度
<meta name="viewport" content="width=device-width">
缺点: 需要浏览器的支持 - css touch-action ==》 touch-action:none;
touch-action的默为 auto,将其置为 none 即可移除目标元素的 300 毫秒延迟
缺点: 新属性,可能存在浏览器兼容问题 - tap事件
zepto的tap事件, 利用touchstart和touchend来模拟click事件
缺点: 点击穿透 - fastclick
6、index.html中用mate标签解决(此标签的使用只能解决Android端延迟问题)
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />