我目前正在为多个浏览器构建一个支持触控的滑块小部件。所以,我有touchstart,touchend,touchmove,mousedown,mousemove和mousedown的听众。除了Mobile Safari之外,它的效果很好。
如果我长按我的目标,鼠标移动事件将触发前一次触摸的坐标,从而导致抖动。
如何在不引起桌面交互问题的情况下阻止或过滤掉此mousemove事件?
答案 0 :(得分:0)
您是否考虑过使用Swipe JS? http://swipejs.com/
答案 1 :(得分:0)
移动旅行中长按的事件序列是touchstart,mousemove,touchend。这与有效的鼠标移动(mousedown,mousemove,mouseup)和有效触摸(touchstart,touchmove,touchend)不同。如果您为所有有效事件调用防止默认值,则不会收到额外通知。因此,如果您跟踪滑块是否使用鼠标独立移动以响应触摸而移动,则鼠标移动发生在正常序列之外,可以安全地忽略。