UNPKG

@opensig/opendesign

Version:

<p align="center"><img src="../docs/public/opendesign-logo-light.png"/></p> <h1 align="center">opendesign</h1> <p align="center">一个 Vue 3 组件库</p> <p align="center"><b>皮肤可定制,使用 TypeScript</b></p>

36 lines (35 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const vue = require("vue"); const is = require("../_utils/is.js"); const event = require("../_utils/event.js"); const getPositionByType = { page: (e) => ({ x: e.pageX, y: e.pageY }), client: (e) => ({ x: e.clientX, y: e.clientY }), screen: (e) => ({ x: e.screenX, y: e.screenY }), offset: (e) => ({ x: e.offsetX, y: e.offsetY }) }; const defaultWindow = is.isClient ? window : null; function useMouse(props = {}) { const { defaultValue = { x: 0, y: 0 }, target = defaultWindow, type = "page" } = props; const x = vue.ref(defaultValue.x); const y = vue.ref(defaultValue.y); const handler = (e) => { const p = getPositionByType[type](e); x.value = p.x; y.value = p.y; }; if (target) { target.addEventListener("mousemove", handler, { passive: true }); event.trigger(target, "mousemove"); } const destroy = () => { target == null ? void 0 : target.removeEventListener("mousemove", handler); }; return { x, y, destroy }; } exports.useMouse = useMouse;