Jquery 解释为什么scrollTop()总是在此处返回0

Jquery 解释为什么scrollTop()总是在此处返回0,jquery,css,scroll,Jquery,Css,Scroll,看 CSS: JS: 滚动事件在主体元素上触发。滚动条位于body元素上,而不是html或window元素上。那么为什么document.body.scrollTop或$('body').scrollTop()返回0呢 如果我想使用高度:100%,是否有任何方法可以检测滚动条的位置,或者我是否被卡住了;溢出:隐藏在html元素上 谢谢 这是因为你有overflow-y:hidden。删除此选项,然后scrollTop()将起作用感谢Shikkediel的评论,它似乎是一个Webkit错误。如果您

CSS:

JS:

滚动事件在主体元素上触发。滚动条位于body元素上,而不是html或window元素上。那么为什么document.body.scrollTop或$('body').scrollTop()返回0呢

如果我想使用高度:100%,是否有任何方法可以检测滚动条的位置,或者我是否被卡住了;溢出:隐藏在html元素上


谢谢

这是因为你有
overflow-y:hidden。删除此选项,然后
scrollTop()
将起作用

感谢Shikkediel的评论,它似乎是一个Webkit错误。如果您将一个div直接放在主体内部,并将滚动事件绑定到该div,它就会工作

CSS:

JS:


我认为这是一个webkit bug。与Firefox配合使用。谢谢我将body设置为overflow-y hidden,并添加了一个高度为100的包装器div和overflow-y auto,scroll事件/scrollTop在div上工作。
html {
  height: 100%;
  overflow-y: hidden;
}
body {
  height: 100%;
  overflow-y: auto;
}
  $('body').bind("scroll", function () {
    if ($('body').scrollTop()) {
      console.log('triggered!');
    } else {
      console.log($('body').scrollTop());
    }
  });
html {
  height: 100%;
  overflow-y: hidden;
}
body {
  height: 100%;
  overflow-y: hidden;
}
.scroll-wrapper {
  height: 100%;
  overflow-y: auto;
}
$('.scroll-wrapper').bind("scroll", function () {
  if ($('.scroll-wrapper').scrollTop()) {
    console.log('triggered!');
    console.log($('.scroll-wrapper').scrollTop());
  } else {
    console.log($('.scroll-wrapper').scrollTop());
  }
});