滚动后元素的位置().顶部不会改变 - 如何获得新位置?

Car*_*son 2 jquery

当用户滚动窗口时,我需要获得一个元素(div)位置(position().top).问题是当我在滚动后调用position().top来获取新位置时,它的值与滚动前相同.这是一些代码:

$('document').ready(function() {

    alert($('#my-element').position().top);

    $(window).scroll(function() {
        alert($('#my-element').position().top);
    });
});
Run Code Online (Sandbox Code Playgroud)

怎么不改变?有没有办法获得新的价值?

gus*_*nke 6

jQuery的.position()返回值是相对于元素的偏移父节点.

您可能应该使用.offset().top,它将相对于文档计算,然后从文档滚动大小折扣.

$( "#my-element" ).offset().top - $( document ).scrollTop()
Run Code Online (Sandbox Code Playgroud)