我有两个要在XHTML页面中浮动的项目。不幸的是,当我尝试获取最右边的项目的偏移量时……它返回为元素未浮动时所处的位置。

    <div id="Left style="float:right"></div>
    <div id="right" style="float:right"></div>

    Using Jquery
    <script type="text/javascript">
       var right = $("#right");
       alert(right[0].offsetLeft);
    </script>


我需要做这样的事情吗?

function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent)
    {
        do
        {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;

        } while (obj = obj.offsetParent);
    }
}

最佳答案

您似乎正在寻找页面位置。

所以是的,您将使用类似以下的功能:

function aGetElementsPagePosition (zElement)
{
    var iLeftOffset = zElement.offsetLeft;
    var iTopOffset  = zElement.offsetTop;

    while (zElement = zElement.offsetParent)
    {
        iLeftOffset += zElement.offsetLeft;
        iTopOffset  += zElement.offsetTop;
    }

    return [iLeftOffset, iTopOffset];
}

10-06 08:30