跨浏览器:仅检测滚动位置JS

Noa*_*ary 0 html javascript scroll horizontal-scrolling vertical-scrolling

我已经搜索了这个问题的答案,我最终找到了答案.我写这篇文章是为了给未来的程序员节省很多时间和挫折.

如果您想看到添加的内容或有任何疑问,请在下面评论,我会添加它.随着人们提出问题,这将成为一个更完整的答案.

Noa*_*ary 6

这是在三个主要浏览器(IE,Chrome,Firefox)上查找/检测滚动条位置的解决方案.如果您发现这些浏览器的版本不起作用,请告诉我,我将编辑此答案以包含该信息.

Older versions of chrome:
var scrollTop = document.body.scrollTop; //Chrome
var scrollLeft = document.body.scrollLeft; //Chrome

Chrome > v.78.0.3904.97 (That I know of)
var scrollTop = window.scrollY; //Chrome
var scrollLeft = window.scrollX; //Chrome

Other Browsers:
var otherScrollTop = document.documentElement.scrollTop; //IE & Firefox
var otherScrollLeft = document.documentElement.scrollLeft; //IE & Firefox
Run Code Online (Sandbox Code Playgroud)

这些变量将检测整个页面的滚动位置.

  • @Goahnary,很好的答案。我同意这是当今最好的解决方案。只需添加两点小东西:(1)我想您可以在一行中使其更加简洁:`var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;`。(2)我认为这可以在IE9 +上使用,也许不是很重要,但我认为值得一提:) (2认同)