我目前正在构建一个触摸式滑块小工具,用于多个浏览器。因此,我有touchstart、touchend、touchmove、mousedown、mousemove和mousedown的监听器。它工作得很好,除了在Mobile Safari上。
如果我长时间按住我的目标,鼠标移动事件就会用上一次触摸的坐标触发,从而导致抖动。
如何在不引起桌面交互问题的情况下阻止或过滤掉此mousemove事件?
发布于 2013-08-30 01:54:26
你有没有考虑过使用Swipe JS?http://swipejs.com/
发布于 2013-08-30 06:36:49
在移动safari中,长按事件的顺序是touchstart,mousemove,touchend。这不同于有效的鼠标移动(mousedown、mousemove、mouseup)和有效的触摸( touch touch、touchmove、touchend)。如果你为所有有效的事件调用阻止默认值,你将不会得到额外的通知。因此,如果您跟踪到滑块正在使用鼠标移动,而不是通过触摸进行移动,则鼠标移动发生在正常序列之外,可以安全地忽略。
https://stackoverflow.com/questions/18517808
复制相似问题