获取表中元素的 offsetTop

发布于 2024-07-25 07:04:24 字数 130 浏览 4 评论 0原文

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

I can't seem to figure out how to get the offsetTop of an element within a table. It works fine on elements outside tables, but all of the elements within a table return the same result, and it's usually at the top of the page. I tried this in Firefox and Chrome. How do I get the offsetTop of an element in a table?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南烟 2024-08-01 07:04:24

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 };
}

offsetTop returns a value relative to offsetParent; you need to loop through all of the parents adding offsetParent.offsetTop until offsetParent is null. Consider using jQuery's offset() method.

If you don't want to use jQuery, you can write a method like this (untested):

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 };
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文