Свойство обьекта MouseEvent offsetX возвращает дельту между координатой X начала элемента, на который указывает курсор, и координатой X самого курсора. Отсюда и "поломка".
Если хотите брать координату относительно всего документа, то берите pageX
Если же хотите делать что-то с конкретным элементом, то это вам в сторону ивента mouseover и свойства relatedTarget (можно получить позицию элемента относительно документа методом getBoundingClientRect)