如何计算<li>相对于其父容器的偏移量()</li>

时间:2010-08-06 09:38:09

标签: javascript jquery html css

我有<li>嵌套在包含<ul>内,我想要的是计算偏移量。但请将<ul>的左上角设为0, 0

所以我的HTML是:

<div style="margin: 0 auto; width: 760px; height: 760px; overflow: hidden;">
    <ul style="width: 2000px; height: 2000px; min-height: 2000px; position: relative;">
        <li style="position: relative; width: 40px; height: 40px;"></li>
    </ul>
</div>

我目前的jQuery是:

thePos = $('ul li').offset();
alert('X = '+thePos.left+', Y = 'thePos.top);

但是,这是返回非0, 0的偏移量。我猜它是计算相对于文档边缘而不是父容器的偏移量。

我怎样才能解决这个问题?

感谢你。

注意:position()无法检索到正确的数字:(

2 个答案:

答案 0 :(得分:8)

尝试使用position()代替offset()

来自jQuery文档:

  

.offset()方法允许我们   检索一个当前位置   元素相对于文档。   将此与.position()对比   检索当前位置   相对于偏移的父母。

答案 1 :(得分:0)

我通过设置:

来修复此问题
thePosX = $('ul li').css('left');
thePosY = $('ul li').css('top');

而不是:

thePos = $('ul li').css('left');