【问题标题】:Getting offsetTop of element in a table获取表中元素的 offsetTop
【发布时间】:2010-11-05 21:50:47
【问题描述】:

我似乎无法弄清楚如何获取表格中元素的 offsetTop。它适用于表格外的元素,但表格内的所有元素都返回相同的结果,并且通常位于页面顶部。我在 Firefox 和 Chrome 中试过这个。如何获取表格中某个元素的 offsetTop?

【问题讨论】:

    标签: javascript html offset


    【解决方案1】:

    offsetTop 返回一个相对于offsetParent 的值;你需要通过所有的父母递归地添加offsetParent.offsetTop,直到offsetParentnull。考虑使用jQueryoffset()方法。

    编辑:如果你不想使用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 };
    }
    

    【讨论】:

    • 这在 IE7 中不起作用(可靠)。 IE5-7 不将具有相对定位的元素计为 offsetParents。
    • @SLaks 绝妙的解决方案:)
    猜你喜欢
    • 2020-05-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 2022-10-06
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    相关资源
    最近更新 更多