UNPKG

mouse_event_js

Version:

鼠标的单击双击事件,右键双击事件的hook

1 lines 1.16 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useMouseRightDbClick=exports.useMouseEvent=void 0;const vue_1=require("vue"),useMouseEvent=(e,t,n)=>{let s=0,o=0,u=0;const i=e=>{0===e.button&&(o=e.clientX,u=e.clientY)},r=e=>{if(0!==e.button)return;const n=e.clientX,i=e.clientY;Math.sqrt(Math.pow(n-o,2)+Math.pow(i-u,2))<10&&(s++,setTimeout((function(){1===s&&t(e),s=0}),500))},v=e=>{s=0,n(e)};e.addEventListener("mousedown",i),e.addEventListener("mouseup",r),e.addEventListener("dblclick",v),(0,vue_1.onBeforeUnmount)((()=>{e.removeEventListener("mousedown",i),e.removeEventListener("mouseup",r),e.removeEventListener("dblclick",v)}))};exports.useMouseEvent=useMouseEvent;const useMouseRightDbClick=(e,t)=>{let n=0,s=0;const o=new MouseEvent("mouseup",{button:2,bubbles:!0,cancelable:!0}),u=e=>{if(2===e.button){const o=(new Date).getTime();o-n<300?(s+=1,2===s&&t&&t(e)):s=1,n=o}};e.dispatchEvent(o),e.addEventListener("mouseup",u),e.addEventListener("contextmenu",(e=>{e.preventDefault()})),(0,vue_1.onBeforeUnmount)((()=>{e.dispatchEvent(o),e.removeEventListener("mouseup",u)}))};exports.useMouseRightDbClick=useMouseRightDbClick;