touchmove事件在滑动过快时候触发迟钝

在手指滑动过快的时候,明显touchmove事件触发很迟钝,如下图所示,很快的一次滑动,总共滑动了1095px,结果touchmove事件只触发了五次。
图片描述

但是我需要利用touchmove来测量滑动距离,并且需要这个距离来做逻辑判断的。这样让我的判断出了错。请问如何解决?

阅读 8k
3 个回答

可以使用touchstart和touchend两个事件来触发嘛?利用touchstart记录开始位置,然后使用touchend记录结束位置。

不同浏览器触发的频率都不一样,不懂你所说的让你的判断出错是什么意思。不过自己确实踩过坑,那就是有时候会碰上touchmove事件后立马触发touchend事件,这样,会出现一个0的距离。

新手上路,请多包涵

已经过去5年还是人解答,希望我的回答给新人一些帮助。当手触摸滑动时,window 依次产生如下事件:
touchstart -> touchmove -> scroll -> touchend -> scroll
就是说 touchend 之后,页面还会根据加速度继续滚动一段距离,监听 $(window).on("scroll", function(){}) 就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题