关于scrollTop为0以及解决方法

一.当有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

转载于:https://www.cnblogs.com/ksyou/archive/2009/05/11/1453958.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值