【问题标题】:How do I find the absolute position of an element using jQuery?如何使用 jQuery 找到元素的绝对位置?
【发布时间】:2010-10-15 13:30:37
【问题描述】:

有没有办法使用jQuery找到元素的绝对位置,即相对于窗口的开始位置?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    .offset() 会将元素的偏移位置作为简单对象返回,例如:

    var position = $(element).offset(); // position = { left: 42, top: 567 }
    

    您可以使用此返回值将其他元素定位在同一位置:

    $(anotherElement).css(position)
    

    【讨论】:

    • 这个我老是忘记了,一搜你的帖子再google :p
    • 由于边界等方面的差异,这似乎并不总是返回绝对位置。
    • 我正在使用 chrome 并且 offset() 没有返回正确的顶部坐标。相反,它返回比文档中元素的顶部坐标多 300 像素。为什么??
    • chrome、FF 和 IE 给出不同的结果 :(
    • @Aren 我总是忘记这个,每次都觉得你的评论很有趣:)
    【解决方案2】:

    请注意,$(element).offset() 告诉您元素的位置相对于文档。这在大多数情况下都很有效,但在 position:fixed 的情况下,您可能会得到意想不到的结果。

    如果您的文档比视口长并且您已经垂直滚动到文档的底部,那么您的position:fixed 元素的offset()将大于 滚动量的预期值。

    如果您正在寻找一个相对于视口(窗口)的值,而不是位置:固定元素上的文档,您可以从固定元素的 @ 中减去文档的 scrollTop() 值987654326@ 值。示例:$("#el").offset().top - $(document).scrollTop()

    如果position:fixed 元素的偏移父元素是文档,您想改为读取parseInt($.css('top'))

    【讨论】:

    • 我正在寻找这个!对于像我这样的菜鸟:要减去的值是$(document).scrollTop()
    • 太棒了!这应该是最佳答案!
    猜你喜欢
    • 1970-01-01
    • 2014-03-05
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 2020-07-18
    • 2015-05-26
    相关资源
    最近更新 更多