Skip to content

如何获取页面的滚动距离值?

Posted on:2024年8月10日 at 17:06

在获取页面滚动距离的高度时候,往往有不同的获取方式,而且不同的属性浏览器支持稍有差别:

pageYOffset:属window对象,IE9+、Firefox、Chrome、Opera均支持该方式获取页面滚动敢赌值,并且会忽略DOCTYPE定义规则。

window.pageYOffset;

scrollY:属于window对象,Firefox、Chrome、Opera均支持,IE不支持,忽略DOCTYPE定义规则。

window.scrollY;

页面如果未定义DOCTYPE文档头,所有浏览器都支持docume.body.scrollTop属性获取滚动高度。

document.body.scrollTop;

如果页面定义了DOCTYPE文档头,那么HTML元素上的scrollT属性在IE、Firefox、Opera(presto内核)下都可以获取滚动高度值,而在Chrome和Safari下其值为0。

document.documentElement.scrollTop; //Chrome,Safari下为0

此在获取页面滚动高度的时候优先考虑使用 window.pageYOffset 然后在使用scrollTop。

var _scrollLeft =
  window.scrollX || window.pageXOffset || document.documentElement.scrollLeft;
var _scrollTop =
  window.scrollY || window.pageYOffset || document.documentElement.scrollTop;
原文转自:https://fe.ecool.fun/topic/bae25a07-be25-4857-ae96-9f9e1130286e