document.body.scrollTop值总为0的解决方法

    技术2022-06-25  44

    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


    最新回复(0)