javascript - 如何在 Javascript 中获取对象在页面上的绝对位置?

标签 javascript dom offset

<分区>

我想在 Javascript 中获取对象在页面上的绝对 x,y 位置。我该怎么做?

我尝试了 obj.offsetTopobj.offsetLeft,但它们只给出了相对于父元素的位置。我想我可以遍历并添加父项的偏移量及其父项的偏移量,等等,直到我到达没有父项的对象,但似乎应该有更好的方法。谷歌搜索并没有出现太多,甚至 SO 站点搜索也没有找到任何东西。

此外,我不会使用 jQuery。

最佳答案

var cumulativeOffset = function(element) {
    var top = 0, left = 0;
    do {
        top += element.offsetTop  || 0;
        left += element.offsetLeft || 0;
        element = element.offsetParent;
    } while(element);

    return {
        top: top,
        left: left
    };
};

(无耻地从 PrototypeJS 窃取方法;更改代码风格、变量名和返回值以保护无辜者)

关于javascript - 如何在 Javascript 中获取对象在页面上的绝对位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1480133/

相关文章:

javascript - 如何使用 jQuery 获取使用两个类选择的元素的属性

ios - 自定义 UIScrollView 动画

android - ConstraintLayout 与偏移对齐

javascript - html按钮和选择框不对齐

Java DOM XML 正在跳过 xmlns 属性

javascript - DTube url 解析器正则表达式

php - PHP DOMXPath问题

node.js - Node.js 模块 'time' 的时区问题

javascript - IE HTTPS 问题

javascript - 获取文档中当前 div 后具有相同类的下一个 div