vue.js 如何添加同时单击两个鼠标按钮的事件侦听器?

zaq34kh6  于 2022-12-19  发布在  Vue.js
关注(0)|答案(1)|浏览(187)

我没有在互联网上找到任何例子,Vue本身只支持左右点击,这很奇怪,因为它是一个相当基本的事情,很容易用普通的Javascript。
我只需要一种方法,只在两个鼠标按钮都被按下时才触发事件,而且不为单独的鼠标按钮触发任何事件-这在Vue中可能吗?

j0pj023g

j0pj023g1#

实现如下。“同时单击”任意位置进行测试。您可以调整超时值以获得更高的精度。

let leftClick, rightClick;

window.addEventListener('mousedown', event => {
  leftClick = event.button === 0 || leftClick;
  rightClick = event.button === 2 || rightClick;
  
  if (leftClick && rightClick) {

    // your logic here
    console.log("both clicked");

  } else {
    setTimeout(() => {
      leftClick = false;
      rightClick = false;
    }, 200); // <-- timeout value
  }
});

// prevent context menu
window.addEventListener('contextmenu', event => {
  if (leftClick && rightClick) event.preventDefault();
});

相关问题