jquery - 元素的position().top在滚动后不会改变 - 如何获取新位置?

标签 jquery

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

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

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

    $(window).scroll(function() {
        alert($('#my-element').position().top);
    });
});

怎么没变?有没有办法获得新的新鲜值?

最佳答案

jQuery 的 .position() 返回相对于元素的父元素的偏移量。

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

$( "#my-element" ).offset().top - $( document ).scrollTop()

关于jquery - 元素的position().top在滚动后不会改变 - 如何获取新位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16612651/

相关文章:

javascript - 使用 prev 和 next 动画 CSS3 旋转 onclick

javascript - 自拍时图像旋转 90 度

jquery - 无法水平对齐按钮

jquery CSS 行为

Javascript/Jquery 函数根据子元素内容禁用表格行

javascript - String.fromCharCode(e.which) 无法识别点和逗号

jquery - CSS 多图像转换 - 需要想法

javascript - 移动设备上的响应式菜单在滚动时消失了?

javascript - 如何检测ajax加载内容中选择的变化

javascript - OnClick ="createComment();"不起作用