javascript - jquery scrollTop 不起作用(总是返回 0)

标签 javascript jquery scroll

我想做两件事——在滚动时更改页面部分(向下滚动时出现下一部分,向上滚动时出现上一节),如 this jsFiddle , 并在 向下滚动 > 100px 时淡入菜单。问题是在这两种情况下,我都应该使用 scrollTop() 方法,它总是返回 0。例如,当我尝试淡入菜单背景时:

$(function() {
$('body').on('scroll', function () {

    if ($(this).scrollTop() > 100) {
      $('.hidden-white-bg').fadeIn();
    }else{
      $('.hidden-white-bg').fadeOut();
    }
});
});

当我尝试向下滚动时,菜单没有出现。这是我的主要标记:

<div id="landing-wrapper" class="full-screen-element">
     <section id="main-sectcion" class="full-screen-element">....</section>
     <section id="all-possible" class="full-screen-element">....</section>
     <section id="location" class="full-screen-element">....</section>
     <section id="everything-provide" class="full-screen-element">....</section>
     <section id="main-slider" class="full-screen-element">....</section>
</div>

我的代码与那个 jsFiddle 中的代码相同,但是当我尝试滚动时没有任何反应(滚动根本不起作用!)并且控制台中没有错误。

我猜样式会导致这个问题(不确定,但无论如何)。我向每个元素添加了 full-screen-element 类,使它们的高度达到 100%:

.full-screen-element{
    height:100%;
    min-height:100%;
    height:auto !important;
}

我也尝试使用 jQuery Mouse Wheel但同样的问题。

最佳答案

终于找到了,问题是因为body元素有overflow: hidden,设置为visible就可以了

关于javascript - jquery scrollTop 不起作用(总是返回 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46159030/

相关文章:

javascript - JQuery 循环 JQueryObjects

javascript - 为什么我的 X(时间)轴上没有刻度?

javascript - 如何通过ajax将隐藏字段值传递给codeigniter Controller

html - 全尺寸图像的响应式水平滚动

javascript - 如何将选择框的选项值作为占位符字段显示到另一个 html 文件?

javascript - Jquery为子窗口中的元素绑定(bind)点击事件

jquery - 在 jQuery 中删除父 div 的类

javascript - 在 html 中的多个元素上触发事件

javascript - 在嵌套部分的路点上向前和向后更改滚动方向

html - 使 flex 元素的内容滚动而不是使容器更高