vue3 使用mousedown、mousemove、mouseup事件来实现div的拖拽
发现不跟手 稍微快些div就会脱离鼠标
请问你们在写拖拽时有遇到这个问题吗
你的事件不能写道div上 要写到body上
应该是 屏幕刷新率的问题。需要写一个 依赖 requestAnimationFrame 的节流
const rafThrottle = (callBack?) => {
let locked = false
return function (...args) {
if (locked) return
locked = true
window.requestAnimationFrame(_ => {
callBack.apply(this, args)
locked = false
})
}
}
rafThrottle(()=>{
// 你修改dom x y 的逻辑写在这里。
})()
按下触发 / 抬起触发