在手指滑动过快的时候,明显touchmove事件触发很迟钝,如下图所示,很快的一次滑动,总共滑动了1095px,结果touchmove事件只触发了五次。
但是我需要利用touchmove来测量滑动距离,并且需要这个距离来做逻辑判断的。这样让我的判断出了错。请问如何解决?
在手指滑动过快的时候,明显touchmove事件触发很迟钝,如下图所示,很快的一次滑动,总共滑动了1095px,结果touchmove事件只触发了五次。
但是我需要利用touchmove来测量滑动距离,并且需要这个距离来做逻辑判断的。这样让我的判断出了错。请问如何解决?
不同浏览器触发的频率都不一样,不懂你所说的让你的判断出错是什么意思。不过自己确实踩过坑,那就是有时候会碰上touchmove事件后立马触发touchend事件,这样,会出现一个0的距离。
已经过去5年还是人解答,希望我的回答给新人一些帮助。当手触摸滑动时,window 依次产生如下事件:
touchstart -> touchmove -> scroll -> touchend -> scroll
就是说 touchend 之后,页面还会根据加速度继续滚动一段距离,监听 $(window).on("scroll", function(){}) 就可以了。
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答918 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
可以使用touchstart和touchend两个事件来触发嘛?利用touchstart记录开始位置,然后使用touchend记录结束位置。