在 Javascript 中,获取页面滚动条位置的 DOM 属性有:document.body.scrollTop / document.body.scrollLeft、document.documentElement.scrollTop / document.documentElement.scrollLeft,但存在浏览器兼容性问题,以下是测试结果:
1、document.body.scrollTop / document.body.scrollLeft
① 存在文档声明(<!DOCTYPE html>)
谷歌浏览器:正常
360浏览器:正常
火狐浏览器:0
IE浏览器:0
② 不存在文档声明
谷歌浏览器:正常
360浏览器:正常
火狐浏览器:正常
IE浏览器:正常
2、document.documentElement.scrollTop / document.documentElement.scrollLeft
① 存在文档声明(<!DOCTYPE html>)
谷歌浏览器:0
360浏览器:0
火狐浏览器:正常
IE浏览器:正常
② 不存在文档声明
谷歌浏览器:0
360浏览器:0
火狐浏览器:0
IE浏览器:正常
综上,可用下面的方法获取滚动条位置:
var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
var scrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft ;
在上面的语句中,通过“||”语句赋值,当且仅当 document.body.scrollTop 的值为“0”时,scrollTop 被赋值为 document.documentElement.scrollTop;scrollLeft 同理。
这样就可以获取到页面滚动条的位置,即距离页面顶端或左端的值。