先上代码
/**
* 查询窗口滚动条的位置
* @param {[window]} w [窗口对象]
*/
function getScrollOffset(w){
//使用指定的窗口,如果不带属性则使用当前窗口
var win = w || window;
//除了ie8以及更早的版本以外 其他浏览器都ok
if (w.pageXOffset != null){
return {
x : w.pageXOffset,
y : w.pageYOffset
};
}
// 对标准模式下的ie
var d = w.document;
if(document.compatMode == "CCS1Compat")
return {
x : d.documentElement.scrollLeft,
y : d.documentElement.scrollTop
};
//对怪异模式下的浏览器
return {
x : d.body.scrollLeft,
y : d.body.scrollTop
}
}
代码摘自权威指南,适配各种浏览器。
另外说明一下,documentElement为整个节点树的根结点,也就是<html>
标签,body为<body>
标签,怪异模式下都要从body来获得这些属性。
滚动条监听:
window.onscroll = function(){
//监听的事件
}