确定元素的绝对文档位置

时间:2011-03-23 16:03:14

标签: javascript jquery html

我需要确定HTML元素的确切屏幕坐标(相对于文档)。

我已经有了这样做的代码(将每个父对象的clientWidth和clientHeight相加到根目录),但是当jQuery的滚动效果开始工作时似乎无效。

我需要检测位置的元素实际上是div overflow="hidden"的一部分,用于jQuery滚动效果。

当我尝试使用当前代码获取元素的位置时,我得到一个相对于可滚动面板长度的宽度值。当我滚动面板时,位置保持不变(因此,我最终需要定位的工具提示位置太正确,位于容器面板溢出后面的锚控件的确切位置。< / p>

我的问题是

如何使当前代码适应此要求?

function findPos(obj) {

    var curleft = curtop = 0;
    if (obj.offsetParent) {
        do {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return [curleft, curtop];
}

2 个答案:

答案 0 :(得分:3)

使用jQuery的.offset()函数。

答案 1 :(得分:1)

Matt指出,使用Frameworks功能是明智的,因为它是跨浏览器兼容的,并通过不同的版本修复了各种问题。

除此之外,我希望您在浏览器中将“屏幕”视为当前显示的文档,而不是实际的计算机屏幕/显示,因为这是不可能的。