从Mobile Safari长按过滤mousemove事件

时间:2013-08-29 17:52:23

标签: javascript touch mobile-safari mousemove

我目前正在为多个浏览器构建一个支持触控的滑块小部件。所以,我有touchstart,touchend,touchmove,mousedown,mousemove和mousedown的听众。除了Mobile Safari之外,它的效果很好。

如果我长按我的目标,鼠标移动事件将触发前一次触摸的坐标,从而导致抖动。

如何在不引起桌面交互问题的情况下阻止或过滤掉此mousemove事件?

2 个答案:

答案 0 :(得分:0)

您是否考虑过使用Swipe JS? http://swipejs.com/

答案 1 :(得分:0)

移动旅行中长按的事件序列是touchstart,mousemove,touchend。这与有效的鼠标移动(mousedown,mousemove,mouseup)和有效触摸(touchstart,touchmove,touchend)不同。如果您为所有有效事件调用防止默认值,则不会收到额外通知。因此,如果您跟踪滑块是否使用鼠标独立移动以响应触摸而移动,则鼠标移动发生在正常序列之外,可以安全地忽略。