0

我想要 JavaScript 中文档元素的滚动位置,因为我不能使用 jQuery。

问题:获取文档垂直滚动位置的 JavaScript 代码是什么?我需要让它与 IE 8 和所有现代浏览器兼容。

更新 1:我查看了作为副本给出的 2 个答案。第一个确实解决了我的问题,虽然它不专注于跨浏览器解决方案,但第二个离我需要的还很远。我需要文档的垂直滚动位置,而不是滚动到文档的顶部。第二篇文章谈到使用链接或逐步到达文档顶部,这并没有解决我的问题。

更新 2:根据 minitech 提供的答案,我想出了以下函数来确定适用于所有现代浏览器以及 IE 8 的滚动位置。我对此进行了测试,它适用于 Chrome、FireFox、Opera、Edge、IE 8、IE 9、IE 10 和 IE 11。

function getScrollY() {
        return  window.scrollY || window.pageYOffset || document.body.scrollTop;
}

function getScrollX() {
    return window.scrollX || window.pageXOffset || document.body.scrollLeft;
}
4

1 回答 1

5

使用来源:

var scrollPosition = window.pageYOffset;

兼容性说明:

  • document.body.scrollTop在 Firefox 中不起作用(始终为 0);如果document.documentElement.scrollTop你想使用 a scrollTop。相反,document.documentElement.scrollTop在 Chrome 中始终为 0(嗯,Blink 和 WebKit)。

  • window.scrollY在 IE 8 及更早版本中不存在。

因此,对于旧的 IE 兼容性,请使用:

var scrollPosition =
    'pageYOffset' in window ?
        window.pageYOffset :
        document.body.scrollTop;
于 2015-09-09T21:59:20.933 回答