document.body.scrollTop值为0的解决方法2007年07月06日 星期五 15:34做页面的时候可能会用到位置固定的层,读取document.body.scrollTop来设置层的位置,像这样,
window.οnscrοll=function () { var oFix=document.getElementById("divfix"); oFix.style.top=document.body.scrollTop+"px"; }
可是怎么没有达到预期效果呢,输出document.body.scrollTop的值一看,一直都是0.原来是DTD的问题,要是页面直接用<html>开头的话就没有问题了.但是要符合web标准,DTD当然是不能少的.使用DTD时用document.documentElement.scrollTop代替document.body.scrollTop就可以了
window.οnscrοll=function () { var oFix=document.getElementById("divfix"); oFix.style.top=document.documentElement.scrollTop+"px"; }
2007年08月17日 星期五 16:42
原来在HTML文件头部声明了这样一句:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
改成这样就好了:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">但页面稍有变化,感觉不爽,于是又在google里找,终于发现这是IE5与IE6的区别:
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; } alert(scrollPos);
如果顶部申明 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
document.body.scrollTop 要改成 document.documentElement.scrollTop