代码之家  ›  专栏  ›  技术社区  ›  Barrie Reader

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

  •  2
  • Barrie Reader  · 技术社区  · 14 年前

    我有一个 <li> 嵌套在包含 <ul> ,我想计算偏移量。但在 <UL & GT; 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 回复  |  直到 14 年前
        1
  •  8
  •   Mark Bell    14 年前

    试用使用 position() 而不是 offset() .

    从jquery文档:

    .offset()方法允许我们 检索的当前位置 与文档相关的元素。 将其与.position()进行对比,后者 检索当前位置 相对于偏移父级。

        2
  •  0
  •   Barrie Reader    14 年前

    我通过设置:

    thePosX = $('ul li').css('left');
    thePosY = $('ul li').css('top');
    

    而不是:

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