zoukankan      html  css  js  c++  java
  • document.body.scrollTop 值总为0的解决方法(转载)

    做页面的时候可能会用到位置固定的层,读取 document.body.scrollTop 来设置层的位置,像这样:

    window.onscroll = function ()
    {
    var oFix = document.getElementById("divfix");
    oFix.style.top = document.body.scrollTop + "px";
    }

    可是怎么没有达到预期效果呢,输出 document.body.scrollTop 的值一看,一直都是 0。原来是 DTD 的问题,要是页面直接用 开头的话就没有问题了。但是要符合 web 标准,DTD 当然是不能少的。具有 DTD 时用 document.documentElement.scrollTop 代替 document.body.scrollTop 就可以了。

    window.onscroll = function ()
    {
    var oFix = document.getElementById("divfix");
    oFix.style.top = document.documentElement.scrollTop + "px";
    }

    编者注:

    • 页面具有 DTD(或者说指定了 DOCTYPE)时,使用 document.documentElement。
    • 页面不具有 DTD(或者说没有指定了 DOCTYPE)时,使用 document.body。
    • 在 IE 和 Firefox 中均是如此。
    • 为了兼容,可以使用如下代码:
      var scrollTop = window.pageYOffset 
                      || document.documentElement.scrollTop 
                      || document.body.scrollTop 
                      || 0;

    转自:http://www.cftea.com/c/2008/06/U1FSRIC247DWTK2M.asp
    為此事鬱悶了好幾天,上面的方法經過測試可以使用,在此記一筆.
  • 相关阅读:
    Java实现 LeetCode 400 第N个数字
    Java实现 LeetCode 400 第N个数字
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 398 随机数索引
    Java实现 LeetCode 398 随机数索引
    Java实现 LeetCode 398 随机数索引
    linux中的cd ..和cd -命令有什么区别?
    GCC使用
  • 原文地址:https://www.cnblogs.com/htht66/p/1344309.html
Copyright © 2011-2022 走看看