一.当有DOCTYPE声明的时候,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
需要用document.documentElement.scrollTop方法来获取滚动条高度。
当没有声明的时候,用document.body.scrollTop方法。
所以我们需要用到if...else...去判断。
如果有DOCTYPE声明,我们该怎么办,如果没有DOCTYPE声明,我们该怎么办。
var scotop ;
if(document.body.scrollTop){
scotop = document.body.scrollTop;
}else{
scotop = document.documentElement.scrollTop
}
二.这个方法是google找来的。
var scrollPos; if (typeof window.pageYOffset != 'undefined') { scrollPos = window.pageYOffset; } else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') { scrollPos = document.documentElement.scrollTop; } else if (typeof document.body != 'undefined') { scrollPos = document.body.scrollTop; } 程序解释: 解释1: document.body.scrollTop:就是滚动条顶部到网页顶部的这段距离 window.pageYOffset是NS专用属性,它的含义和IE下的document.body.scrollTop一样 。 解释2: 当文档有了标准声明时, document.compatMode 的值就等于 "CSS1compat", 当没声明的时候, document.compatMode 的值等于 "BackCompat",所以想判断文档是否有声明, 可以这么写: if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat'){ } 解释3: 当文档没有声明的时候,可以用 document.body.scrollTop;来获取滚动条高度。
from: cssrain.cn