zoukankan      html  css  js  c++  java
  • IE和FF下document.body对象的clientHeight,offsetHeight,scrollHeight的差别

    相关图片

    当页面实际内容高度大于浏览器可视区域高度时

    a. IE下

     

     

        

    b. FF下

     

     

     

    当页面实际内容高度小于浏览器可视区域高度时

    a. IE下

    b. FF下

     

    由此有以下结论

    clientHeight
         在IE和FF下,该属性没什么差别,都是指浏览器的可视区域,即除去浏览器的那些工具栏状态栏剩下的页面展示空间的高度。

    offsetHeight
         在IE下,offsetHeight也是浏览器可视区域的高(包括边线)      在FF下,offsetHeight是页面具体内容的高度

    scrollHeight        在IE下,scrollHeight 是页面具体内容的高度,可以小于clientHeight     在FF下,scrollHeight 是网页内容高度,不过最小值是clientHeight

    下面是跨浏览器取得当前页面的高度的解决方案(比如创建遮罩层时要用到)

    function getPageSize(){            //检测浏览器的渲染模式         var body = (document.compatMode&&document.compatMode.toLowerCase() == "css1compat")?document.documentElement:document.body;

            var bodyOffsetWidth = 0;         var bodyOffsetHeight = 0;         var bodyScrollWidth = 0;         var bodyScrollHeight = 0;         var pageDimensions = [0,0];                 pageDimensions[0]=body.clientHeight;          pageDimensions[1]=body.clientWidth;                  bodyOffsetWidth=body.offsetWidth;         bodyOffsetHeight=body.offsetHeight;         bodyScrollWidth=body.scrollWidth;         bodyScrollHeight=body.scrollHeight;

            if(bodyOffsetHeight > pageDimensions[0])         {             pageDimensions[0]=bodyOffsetHeight;         }                     if(bodyOffsetWidth > pageDimensions[1])         {             pageDimensions[1]=bodyOffsetWidth;         }                     if(bodyScrollHeight > pageDimensions[0])         {             pageDimensions[0]=bodyScrollHeight;          }                      if(bodyScrollWidth > pageDimensions[1])         {             pageDimensions[1]=bodyScrollWidth;         }  

            return pageDimensions;  }

  • 相关阅读:
    django之表设计、路由层等
    django之三剑客、静态文件配置、请求响应对象、数据库操作
    djang小项目过程中的小问题 02(跳转界面)
    生鲜超市项目错误及解决办法(crispy_forms、外键指向自己、class嵌套访问父类、meta类及各种字段参数)
    生鲜超市项目错误及解决办法(安装mysqlclient)
    djang小项目过程中的小问题 01(django中的configrarion配置、django自带命名规范)
    react-Hook
    react中登录注册 使用验证码验证
    react状态管理器之mobx
    react中的虚拟DOM,jsx,diff算法。让代码更高效
  • 原文地址:https://www.cnblogs.com/VicHuang/p/3028376.html
Copyright © 2011-2022 走看看