Jquery DOC说相对于文档的offset(),我看到很多帖子都是这样使用的。实际上这是错误的。
#foo {
position:relative;
}
#bar {
position:absolute;
left:16;
right:16;
}
<div id="foo">
<div id="bar">
<div>
</div>
var fooOffset= $("#foo").offset();
var barOffset= $("#bar").offset();
结果在Chrome中:
foo offset: 300, 280;
bar offset: 0, 100
相对于文档,foo偏移是正确的。 但是条形偏移(0,100)?它从何而来? 如果它相对于位置父项,则应为(16,16)。 如果它与文档相关,则应为(300 + 16,280 + 16)。
有什么可以帮我解决的吗?我想要做的是找出相对于窗口的位置,如:
var y = $("#bar").offset().top - $(window).scrollTop;
感谢。
答案 0 :(得分:0)
您正在定义没有单位的left
和right
属性(px
,%
等)。所以:
#bar {
position:absolute;
left:16;
right:16;
}
应该是:
#bar {
position:absolute;
left:16px;
right:16px;
}
检查this DEMO。
注意:我定义了width
,height
和border
,以便您了解正在发生的事情。 right
属性也没有任何效果,因为您也定义了left
。也许您想要top
代替right
;)