如果父元素是固定的,则offset()。top不能按预期工作

时间:2014-11-10 13:16:29

标签: jquery html css

我正在使用position : fixed作为div在页面顶部使用div,但是当我使用offset().top作为其子值时,它会在滚动时给出不同的值。我尝试过:

CSS:

.parent{
    position : fixed;
    top : 0px;
}
.child{
    height : 20px;
    margin-top : 10px;
}

JS:

console.log($(".child").offset().top);

当我滚动页面时,上面的JS代码会给出不同的结果。

4 个答案:

答案 0 :(得分:7)

使用.position()获取元素相对于其偏移父元素的当前坐标。 .offset()方法为您提供相对于整个文档的坐标。

$(".child").position()

答案 1 :(得分:0)

您可以在此处阅读:http://api.jquery.com/offset/

  

获取第一个元素的当前坐标,或者在匹配元素集中相对于文档设置每个元素的坐标。

offset()。top为您提供从元素到页面顶部的像素。

也许你应该使用。{(3}}

的.position()。top quote
  

将此与.position()进行对比,该位置检索相对于偏移父项的当前位置。

答案 2 :(得分:0)

您可以使用jquery position.top获取div的最高位置http://api.jquery.com/position/

答案 3 :(得分:0)

您可以查看以下链接。有一个解释如何计算顶部位置考虑scrollTop。 https://stackoverflow.com/a/10340741/851516