如何获取页面的滚动距离值?
参考答案:
在获取页面滚动距离的高度时候,往往有不同的获取方式,而且不同的属性浏览器支持稍有差别:
pageYOffset:属window对象,IE9+、Firefox、Chrome、Opera均支持该方式获取页面滚动敢赌值,并且会忽略DOCTYPE定义规则。
javascript
window.pageYOffsetscrollY:属于window对象,Firefox、Chrome、Opera均支持,IE不支持,忽略DOCTYPE定义规则。
javascript
window.scrollY页面如果未定义DOCTYPE文档头,所有浏览器都支持docume.body.scrollTop属性获取滚动高度。
javascript
document.body.scrollTop如果页面定义了DOCTYPE文档头,那么HTML元素上的scrollT属性在IE、Firefox、Opera(presto内核)下都可以获取滚动高度值,而在Chrome和Safari下其值为0。
javascript
document.documentElement.scrollTop; //Chrome,Safari下为0此在获取页面滚动高度的时候优先考虑使用 window.pageYOffset 然后在使用scrollTop。
javascript
var _scrollLeft = window.scrollX || window.pageXOffset || document.documentElement.scrollLeft
var _scrollTop = window.scrollY || window.pageYOffset || document.documentElement.scrollTop题目要点:
获取页面滚动距离的属性和方法
window.pageYOffset:window.scrollY:document.body.scrollTop:document.documentElement.scrollTop:
获取滚动距离的优先级
- 优先使用
window.pageYOffset,因为它被大多数现代浏览器支持,且不依赖于DOCTYPE定义。 - 如果
window.pageYOffset不可用,使用window.scrollY。 - 如果上述两者都不可用,使用
document.body.scrollTop(仅在没有DOCTYPE的情况下)。 - 如果所有上述方法都不可用,使用
document.documentElement.scrollTop(仅在IE、Firefox、Opera(presto内核)下)。