关于javascript scrollTop那点事

javascript scrollTop 获取滚动条相对于其顶部的偏移(如制作自动显示隐藏的“返回顶部”按钮)。在实际应用中经常会遇到以下问题:

  1. document.documentElement.scrollTop在Chrome里总为0
  2. document.body.scrollTop 在IE和firefox里总为0

1、各浏览器下 window.pageYOffset/document.documentElement.scrollTop/document.body.scrollTop的差异

示例:

window.scroll(0,100)
console.log(“window.pageYOffset:”+window.pageYOffset)
console.log(“document.documentElement.scrollTop:”+document.documentElement.scrollTop)
console.log(“document.body.scrollTop:”+document.body.scrollTop)

IE6/7/8:

doctype:

window.pageYOffset:undefined

document.documentElement.scrollTop:100

document.body.scrollTop:0

无doctype:

window.pageYOffset:undefined

document.documentElement.scrollTop:0

document.body.scrollTop:100

Safari/Chrome:

window.pageYOffset:100

document.documentElement.scrollTop:0

document.body.scrollTop:100

Firefox/Opera:

doctype:

window.pageYOffset:100

document.documentElement.scrollTop:100

document.body.scrollTop:0

无doctype:

window.pageYOffset:100

document.documentElement.scrollTop:0

document.body.scrollTop:100

2、获取scrollTop值

完美的获取scrollTop 赋值简写 :

var scrollTop = window.pageYOffset|| document.documentElement.scrollTop || document.body.scrollTop;

“关于javascript scrollTop那点事”的11个回复

  1. 如果要获取某个元素(如div)距离滚动条顶部距离的话。。。得怎么获取。。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注