<div class="drap" />
.drap {
height: 100px;
width: 100px;
background-color: seagreen;
position: absolute;
}
const dom = document.getElementsByClassName('drap')[0]
let l = 0
let t = 0
let ifDown = false
const move = e => {
const { pageX, pageY } = e
dom.style.left = pageX - l + 'px'
dom.style.top = pageY - t + 'px'
}
dom.addEventListener('mousedown', e => {
ifDown = true
const rect = e.target.getBoundingClientRect()
const { pageX, pageY } = e
l = pageX - rect.left
t = pageY - rect.top
document.addEventListener('mousemove', move, false)
document.addEventListener('mouseup', upE => {
if (ifDown) {
ifDown = false
document.removeEventListener('mousemove', move, false)
}
})
}, false)