JavaScript---关于scrollTop为0以及解决方法。
说明:当没有DOCTYPE声明的时候document.body.scrollTop一切正常
当有DOCTYPE声明的时候document.body.scrollTop总是输出0;
当有DOCTYPE声明的时候document.body.scrollTop总是输出0;
我们必须改用另一个方法:
document.documentElement.scrollTop
我们刚才使用的document.documentElement.scrollTop不能用了,
它总是输出0.
这是我们又想到了 在没有声明的时候,
需要用
document.body.scrollTop
当有DOCTYPE声明的时候,
需要用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
}
这样判断后,就可以在两种情况下同时使用了。
IE6,IE7,FF2测试通过.
FF3没装,无法测试。
这个方法是google找来的。
![]()
1
document.onclick = function(){
2
var scrollPos;
3
if (typeof
window.pageYOffset != 'undefined') {
4
scrollPos = window.pageYOffset;
5
}
6
else if (typeof
document.compatMode != 'undefined' &&
document.compatMode != 'BackCompat') {
7
scrollPos =
document.documentElement.scrollTop;
8
}
9
else if (typeof document.body
!=
'undefined') {
10
scrollPos =
document.body.scrollTop;
11
}
12
alert( " 滚动条高度为
:"
+
scrollPos
)
13
}
程序解释:
解释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;来获取滚动条高度。
当有DOCTYPE声明的时候document.body.scrollTop总是输出0;
当有DOCTYPE声明的时候document.body.scrollTop总是输出0;
我们必须改用另一个方法:
document.documentElement.scrollTop
我们刚才使用的document.documentElement.scrollTop不能用了,
它总是输出0.
这是我们又想到了 在没有声明的时候,
需要用
document.body.scrollTop
当有DOCTYPE声明的时候,
需要用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
}
这样判断后,就可以在两种情况下同时使用了。
IE6,IE7,FF2测试通过.
FF3没装,无法测试。
这个方法是google找来的。
1
document.onclick = function(){2
var scrollPos; 3
if (typeof window.pageYOffset != 'undefined') {
4
scrollPos = window.pageYOffset; 5
} 6
else if (typeof document.compatMode != 'undefined' &&
document.compatMode != 'BackCompat') {
7
scrollPos = document.documentElement.scrollTop;
8
} 9
else if (typeof document.body !=
'undefined') {
10
scrollPos = document.body.scrollTop;
11
} 12
alert( " 滚动条高度为 :"
+
scrollPos
)
13
}解释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;来获取滚动条高度。

浙公网安备 33010602011771号