element3
Version:
A Component Library for Vue3
40 lines (34 loc) • 900 B
JavaScript
let isDragging = false
export default function (element, options) {
// if (Vue.prototype.$isServer) return
const moveFn = function (event) {
if (options.drag) {
options.drag(event)
}
}
const upFn = function (event) {
document.removeEventListener('mousemove', moveFn)
document.removeEventListener('mouseup', upFn)
document.onselectstart = null
document.ondragstart = null
isDragging = false
if (options.end) {
options.end(event)
}
}
element.addEventListener('mousedown', function (event) {
if (isDragging) return
document.onselectstart = function () {
return false
}
document.ondragstart = function () {
return false
}
document.addEventListener('mousemove', moveFn)
document.addEventListener('mouseup', upFn)
isDragging = true
if (options.start) {
options.start(event)
}
})
}