我有<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()
无法检索到正确的数字:(
答案 0 :(得分:8)
尝试使用position()
代替offset()
。
来自jQuery文档:
.offset()方法允许我们 检索一个当前位置 元素相对于文档。 将此与.position()对比 检索当前位置 相对于偏移的父母。
答案 1 :(得分:0)
我通过设置:
来修复此问题thePosX = $('ul li').css('left');
thePosY = $('ul li').css('top');
而不是:
thePos = $('ul li').css('left');