<div class="wrap" v-flowDrag>
directives: {
flowDrag: {
bind(el, binding, vnode, oldNode) {
if (!binding) {
return
}
el.onmousedown = e => {
if (e.button == 2) {
// 右键不管
return
}
// 鼠标按下,计算当前原始距离可视区的高度
let disX = e.clientX
let disY = e.clientY
el.style.cursor = "move"
document.onmousemove = function(e) {
// 移动时禁止默认事件
e.preventDefault()
const left = e.clientX - disX
disX = e.clientX
el.scrollLeft += -left
const top = e.clientY - disY
disY = e.clientY
el.scrollTop += -top
}
document.onmouseup = function(e) {
el.style.cursor = "auto"
document.onmousemove = null
document.onmouseup = null
}
}
}
}
}