Свойства offsetTop
и offsetLeft
относятся к offsetParent
, поэтому вы можете получить положение элемента относительно его родителя бесплатно.Если вы хотите, чтобы позиция относилась ко всей body
, то вам нужно пройти по цепочке offsetParent
и суммировать значения.
Следующая функция выполняет это:
function findPos(obj) {
var curleft = 0, curtop = 0;
if (obj.offsetParent) {
do {
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
return { x: curleft, y: curtop };
}
return undefined;
}