当用户滚动窗口时,我需要获得一个元素(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)
怎么不改变?有没有办法获得新的价值?
jQuery的.position()返回值是相对于元素的偏移父节点.
您可能应该使用.offset().top,它将相对于文档计算,然后从文档滚动大小折扣.
$( "#my-element" ).offset().top - $( document ).scrollTop()
Run Code Online (Sandbox Code Playgroud)