Это ошибка в Firefox. Если вы хотите добиться того же в других браузерах (или в Firefox, не полагаясь на ошибку), вам необходимо:
- захватить элемент clientX и clientY
- при нажатии элемента, добавитьпрослушиватель перемещения мыши на уровне документа, получите clientX и clientY оттуда, вычтите элемент clientX и clientY вашего элемента, сделайте с ними что-нибудь
- при наведении мыши на уровне документа, удалите прослушиватель mousemove
что-то вродеэто
const element = document.getElementById('someId')
const clientRect = element.getBoundingClientRect();
const elementX = clientRect.left;
const elementY = clientRect.top;
element.addEventListener('mousedown', function moveListener() {
function documentMoveListener(e) {
console.log(e.clientX - elementX, e.clientY - elementY)
}
document.addEventListener('mousemove', documentMoveListener)
document.addEventListener('mouseup', function mouseUpListener() {
document.removeEventListener('mouseup', mouseUpListener)
document.removeEventListener('mousemove', documentMoveListener)
})
})