Con JavaScript è semplice ottenere le coordinate di un elemento rispetto alla viewport.
La soluzione è la seguente:
'use strict';
const getElementCoords = element => {
const rect = element.getBoundingClientRect();
return {
top: rect.top + document.body.scrollTop,
left: rect.left + document.body.scrollLeft
};
};