Получение offsetTop элемента в таблице - PullRequest
8 голосов
/ 25 июня 2009

Не могу понять, как получить offsetTop элемента в таблице. Он отлично работает с элементами вне таблиц, но все элементы в таблице возвращают один и тот же результат, и обычно он находится вверху страницы. Я пробовал это в Firefox и Chrome. Как мне получить offsetTop элемента в таблице?

1 Ответ

21 голосов
/ 25 июня 2009

offsetTop возвращает значение относительно offsetParent; вам нужно рекурсивно добавлять offsetParent.offsetTop через всех родителей, пока offsetParent не станет null. Попробуйте использовать метод jQuery offset().

РЕДАКТИРОВАТЬ : Если вы не хотите использовать jQuery, вы можете написать такой метод (без проверки):

function offset(elem) {
    if(!elem) elem = this;

    var x = elem.offsetLeft;
    var y = elem.offsetTop;

    while (elem = elem.offsetParent) {
        x += elem.offsetLeft;
        y += elem.offsetTop;
    }

    return { left: x, top: y };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...