У меня странная ошибка, которая начала проявляться, когда я сделал тело относительным позиционированным элементом с полем 39 пикселей (я освобождаю место для панели инструментов вверху страницы).
В любом случае - если вы посмотрите, как большинство сайтов советуют вам вычислить позицию элемента страницы, вы увидите такой код:
function getPos(elt) {
var pt = [0, 0];
while (elt.offsetParent !== null) {
pt[0] += elt.offsetLeft;
pt[1] += elt.offsetTop;
elt = elt.offsetParent;
}
return pt;
}
Это работает нормально, даже если ваш тег
имеет поле. НО, если ваше тело также является position: relative, тогда это возвращает значение со слишком маленьким - оно не включает поля элемента body.Как мне 1) определить, расположено ли тело относительно, и 2 ) узнать, какие поля есть, чтобы я мог добавить их обратно?
Обратите внимание, что мне нужны координаты страницы, чтобы я мог сравнить их с MouseEvent PageX, PageY.