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

Cross-browser: Detecting scroll position JS only

我四处寻找这个问题的答案,终于找到了。我写这篇文章是为了希望为未来的程序员节省大量时间和挫折感。

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

这是find/detect三大浏览器(IE,Chrome,火狐)滚动条位置的解决方案。如果您发现这些浏览器的某个版本无法运行,请告诉我,我将编辑此答案以包含该信息。

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

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

正如@Eloy Pineda 提到的:您可以使用以下方法更简洁地编写此内容:

var scrollTop = window.scrollY || document.body.scrollTop || document.documentElement.scrollTop;
var scrollLeft = window.scrollX || document.body.scrollLeft || document.documentElement.scrollLeft;