31 lines
1.0 KiB
JavaScript
31 lines
1.0 KiB
JavaScript
/**
|
|
* MouseMover Utility Module
|
|
*/
|
|
let _mouseMoverMoving = false
|
|
let _mouseMoverPos = {}
|
|
let _mouseMoverEvents = {}
|
|
|
|
const MouseMover = {
|
|
start: (event, { onmousemove, onmouseup }) => {
|
|
_mouseMoverPos = { x: event.clientX, y: event.clientY, w: 0, h: 0 }
|
|
_mouseMoverEvents = { onmousemove, onmouseup }
|
|
_mouseMoverMoving = true
|
|
},
|
|
}
|
|
|
|
if (typeof document !== 'undefined') {
|
|
document.addEventListener('mouseup', event => {
|
|
if (!_mouseMoverMoving) return
|
|
_mouseMoverMoving = false
|
|
_mouseMoverEvents.onmouseup?.({ event, ..._mouseMoverPos })
|
|
})
|
|
document.addEventListener('mousemove', event => {
|
|
if (!_mouseMoverMoving) return
|
|
_mouseMoverPos.w = event.clientX - _mouseMoverPos.x
|
|
_mouseMoverPos.h = event.clientY - _mouseMoverPos.y
|
|
_mouseMoverEvents.onmousemove?.({ event, ..._mouseMoverPos })
|
|
})
|
|
}
|
|
|
|
globalThis.MouseMover = MouseMover;
|