我有一个包含许多元素的页面,每个元素都有一个绑定到click 事件的回调。
页面大于视口,用户可以滚动标准方式(使用鼠标滚轮、滚动条...)
现在我需要实现一个平移模式,为用户提供另一种滚动页面的方式:
用户点击,鼠标向下拖动,页面滚动。
我在 body 元素上轻松地注册了 mousedown、mousemove 和 mouseup 实现了这一点。当用户拖动时,我使用window.scrollTo()滚动窗口
问题:当页面在鼠标指针下移动时,如果用户平移页面点击一个元素,那么 mousedown 和 mouseup 会在同一个元素上发生,这会在 mouseup 之后触发该元素上的点击事件。
这是不受欢迎的。
click 事件在子元素上(鼠标 owm-move-up 在 body 上),所以stopPropagation没有帮助。
问题:在 mouseup 回调结束时,当实际发生拖动时(我可以检查这个比较初始和最终鼠标坐标),我可以阻止点击事件触发吗?