问题描述
我正在编写一个指令,该指令涉及用鼠标捕捉滑动手势,因此我使用了添加和删除mousedown,mousemove和mouseup事件侦听器的组合。为了方便起见,我还添加了一个鼠标离开侦听器,以用于指针何时退出滑动区域。
Vue.directive('swipe-scroll',{
inserted(el,binding) {
el.scroll = ({ movementX }) => {
(...)
};
el.constrain = () => {
el.removeEventListener('mousemove',el.scroll);
el.removeEventListener('mouseleave',el.constrain);
(...)
};
el.addEventListener('mousedown',() => {
el.addEventListener('mousemove',el.scroll);
el.addEventListener('mouseleave',el.constrain);
});
el.addEventListener('mouseup',el.constrain);
},});
显然,它工作得很好,但是constrain
函数在被mouseup
事件触发时需要花费一些时间,但是事件mouseleave
触发了相同的函数,执行是瞬间。我不知道延迟是因为事件本身还是因为某种节流,反跳或冒泡而延迟了处理程序执行。
触发mouseup事件时,是否有任何进程延迟处理程序的执行?如果是这样,可以以某种方式禁用它吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)