clientWidth、offsetWidth、scrollWidth等区别

<script>
    /*
     ****** 元素视图属性
     * offsetWidth 水平方向 width + 左右padding + 左右border-width
     * offsetHeight 垂直方向 height + 上下padding + 上下border-width
     * 
     * clientWidth 水平方向 width + 左右padding
     * clientHeight 垂直方向 height + 上下padding
     * 
     * offsetTop 获取当前元素到 定位父节点 的top方向的距离
     * offsetLeft 获取当前元素到 定位父节点 的left方向的距离
     * 
     * scrollWidth 元素内容真实的宽度,内容不超出盒子高度时为盒子的clientWidth
     * scrollHeight 元素内容真实的高度,内容不超出盒子高度时为盒子的clientHeight
     * 
     ****** 元素视图属性结束
     * 
     ****** Window视图属性(低版本IE浏览器[<IE9]不支持) 【自测包含滚动条,但网络教程都说不包含???】
     * innerWidth 浏览器窗口可视区宽度(不包括浏览器控制台、菜单栏、工具栏) 
     * innerHeight 浏览器窗口可视区高度(不包括浏览器控制台、菜单栏、工具栏)
     * ***** Window视图属性结束
     * 
     ****** Document文档视图
     * (低版本IE的innerWidth、innerHeight的代替方案)
     * document.documentElement.clientWidth 浏览器窗口可视区宽度(不包括浏览器控制台、菜单栏、工具栏、滚动条)
     * document.documentElement.clientHeight 浏览器窗口可视区高度(不包括浏览器控制台、菜单栏、工具栏、滚动条)
     * 
     * document.documentElement.offsetHeight 获取整个文档的高度(包含body的margin)
     * document.body.offsetHeight 获取整个文档的高度(不包含body的margin)
     * 
     * document.documentElement.scrollTop 返回文档的滚动top方向的距离(当窗口发生滚动时值改变)
     * document.documentElement.scrollLeft 返回文档的滚动left方向的距离(当窗口发生滚动时值改变)
     ****** Document文档视图结束
     * 
     ****** 元素方法
     * 1. getBoundingClientRect() 获取元素到body
     *  bottom: 元素底边(包括border)到可视区最顶部的距离
     *  left: 元素最左边(不包括border)到可视区最左边的距离
     *  right: 元素最右边(包括border)到可视区最左边的距离
     *  top: 元素顶边(不包括border)到可视区最顶部的距离
     *  height: 元素的offsetHeight
     *  width: 元素的offsetWidth
     *  x: 元素左上角的x坐标 
     *  y: 元素左上角的y坐标 
     * 
     * 2. scrollIntoView() 让元素滚动到可视区
     * 
     * ***** 元素方法结束
     * 
     */
</script>
 

  一、clientWidth和clientHeigh 、 clientTop和clientLeft
        1,clientWidth的实际宽度

        clientWidth = width+左右padding

        2,clientHeigh的实际高度

         clientHeigh = height + 上下padding 

        3,clientTop的实际宽度

           clientTop = boder.top(上边框的宽度)

        4,clientLeft的实际宽度

            clientLeft = boder.left(左边框的宽度)

    二、offsetWidth和offsetHight 、 offsetTop和offsetLeft
         1,offsetWidth的实际宽度

            offsetWidth = width + 左右padding + 左右boder

         2,offsetHeith的实际高度

                      offsetHeith = height + 上下padding + 上下boder

         3,offsetTop实际宽度

                       offsetTop:当前元素 上边框 外边缘 到 最近的已定位父级(offsetParent) 上边框 内边缘的 距离。如果父

                 级都没有定位,则分别是到body 顶部 和左边的距离

                 4,offsetLeft实际宽度

              offsetLeft:当前元素 左边框 外边缘 到 最近的已定位父级(offsetParent) 左边框 内边缘的            距离。如果父级都没有定位,则分别是到body 顶部 和左边的距离

    三、scrollWidth和scrollHeight 、 scrollTop和scrollLeft
        1,scrollWidth实际宽度

               scrollWidth:获取指定标签内容层的真实宽度(可视区域宽度+被隐藏区域宽度)。

 

               2,scrollHeight的实际高度

 

         scrollHeight:获取指定标签内容层的真实高度(可视区域高度+被隐藏区域高度)

         3,scrollTop

                scrollTop :内容层顶部 到 可视区域顶部的距离。

          实例:var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

          持续获取高度的方式:

          

window.addEventListener('scroll', ()=>{

var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

});

                4,scrollLeft

                scrollLeft:内容层左端 到 可视区域左端的距离.

 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值