欢迎光临
我们一直在努力

移动端的 click 有300 ms的延时原因

在移动端触发时间会按照 touchstart,touchmove,touchend,click 顺序触发;

触发touchend,click之间会有200-400不等的时间延时(因为移动端需要判断用户是不是想要进行双击);

fastclick 和 zepto 的tap 事件 都可以解决 300 ms延时;

fastclick 原理:fastclick是在检测到touchend事件的时候,会通过DOM自定义事件立即出发模拟一个click事件,并把浏览器在300ms之后的click事件阻止掉。

tap 原理:在touchstart 时会记录一个值x1,y1,在touchend时会记录x2,y2,通过对比着几个值,判断用户是否是点击事件,而不是滑动事件,然后直接触发事件。

赞(0)
版权归原作者所有,如有侵权请告知。达维营-前端网 » 移动端的 click 有300 ms的延时原因

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址