在JavaScript中垂直文档滚动位置,可跨浏览器兼容,最高可达ie8



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

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

更新1 :我复习了这两个答案的副本。第一个确实解决了我的问题,虽然它不关注跨浏览器解决方案,但第二个是我所需要的。我需要文档的垂直滚动位置,而不是滚动到文档的顶部。第二篇文章讨论的是使用链接或逐步到文档顶部,这并没有解决我的问题。

更新2 :根据minitech提供的答案,我想出了以下函数来确定在所有现代浏览器以及IE 8中工作的滚动位置。我对它进行了测试,在Chrome、FireFox、Opera、Edge、ie8、ie9、ie10和ie11中都能运行。

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

使用来源:

var scrollPosition = window.pageYOffset;

兼容性指出:

  • document.body.scrollTop在Firefox中不工作(总是0);如果你想用scrollTop的话就是document.documentElement.scrollTop。相反,document.documentElement.scrollTop总是0在Chrome(好吧,Blink和WebKit)。

  • window.scrollY在ie8及更早版本中不存在

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

var scrollPosition =
    'pageYOffset' in window ?
        window.pageYOffset :
        document.body.scrollTop;

最新更新