const div = document.createElement('div')
div.style.border = '1px solid red'
div.style.width = '100px'
div.style.height = '100px'
div.id = 'demo'
document.body.appendChild(div)
let drag = false
let position = [0, 0]
div.onmousedown = (e) => {
drag = true
position = [e.clientX, e.clientY]
}
document.onmousemove = (e) => {
if (drag === true) {
const deltaX = e.clientX - position[0]
const deltaY = e.clientY - position[1]
const left = parseInt(div.style.left) || 0
const top = parseInt(div.style.top) || 0
div.style.top = top + deltaY + 'px'
div.style.left = left + deltaX + 'px'
position = [e.clientX, e.clientY]
}
}
document.onmouseup = () => {
drag = false
}