前端er处理移动端的点击事件

前端er处理移动端的点击事件

对于移动端的点击触控,众所周知 click 有 300ms 延迟。比较好奇目前大家或是各个前端团队都是怎么选择方案的?

抛砖引玉,先说我自己目前所了解的吧:

  1. 直接使用 fastclick
    优点:全局引入,方便省事
    缺点:增加插件冗余?

  2. 使用 zepto touch
    优点:基于 zepto 核心,还提供 singleTap, doubleTap, longTap, swipe 等简单触控类型判断。
    缺点:坑多,例如使用 setTimeout 延迟触发事件,需要解决点透问题。

  3. 直接原生绑定 touchstart / touchend
    优点:除了减少插件依赖,好像没想到什么优点。
    缺点:需要处理 touchmove scroll 的一些误杀。也不一定就解决快,原生往往预示着需要自己处理一大堆东西。

  4. 造轮子,封装到自己(团队)的核心框架里

除此之外关于这个问题肯定还有很多方法和话题吧。
例如 IE10 以上可以使用 -ms-touch-action: none 禁用双击判断:
How to implement the -ms-touch-action: none property to disable Double-tap-zoom on Windows Touch devices
还有 Android 上 Chrome 会根据 viewport 设置 user-scalable=no 禁用双击等等。
求补充和分享。



移动端click事件延迟300ms到底是怎么回事,该如何解决?

你可能感兴趣的:(前端er处理移动端的点击事件)