So, you answered your own question: document.elementFromPoint works in the view coordinate, not in the document. So all you have to do is add scroll compensation.
The following code was developed for me:
document.elementFromPoint(X - window.pageXOffset, Y - window.pageYOffset);
Or, if you are listening to an event that would be as follows:
document.elementFromPoint(e.pageX - window.pageXOffset, e.pageY - window.pageYOffset);
Anton Bielousov
source share