获取元素的offsetTop的一个表(Getting offsetTop of element in

2019-07-29 06:21发布

我似乎无法弄清楚如何获得一个表中的一个元素的的offsetTop。 它适用于表外的元素很好,但所有表内的元素返回相同的结果,并在页面的顶部通常是。 我在Firefox和Chrome尝试这个。 我如何在一个表中的元素的offsetTop?

Answer 1:

offsetTop返回相对于值offsetParent ; 你需要递归增加offsetParent.offsetTop通过所有的父母,直到offsetParentnull 。 考虑使用的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 };
}


文章来源: Getting offsetTop of element in a table