h5 3种300ms延迟的解决方案(亲测好用)

4,221 阅读1分钟

背景:double tap to zoom

当用户点击屏幕以后,浏览器不能直接判断用户是点击操作,还是双击缩放,因此浏览器的做法是等待300ms来判断用户是进行了什么操作。

响应速度是移动端用户体验的重要因素,超过100ms便认为是卡顿。

解决方案:

一、Fastclick

// FastClick使用非常简单
window.addEventListener('load'.function(){
    FastClick.attach(document.body);
},false);

fastclick原理

  • 监听touchend事件(touchstart touchend会优先于click触发)
  • 使用自定义DOM事件模拟一个click事件
  • 把默认的click事件(300ms之后触发的)禁止掉

二、width = device-width

现代浏览器做了一些改进

<head>
    <meta name="viewport" content="width=device-width,initial-scale=1.0" >
    <title>title</title>
</head>

三、禁止缩放

<head>
    <meta name="viewport" content="user-scalable=no,initial-scale=1.0" >
    <title>title</title>
</head>