javascript offset/client/scroll/的理解总结

注意:这些内容在不同的浏览器和浏览器版本都会造成不同的情况,这一块先不进行总结.

一.offset

 解释:

   当前标签有定位,则offset 是距离 最近有定位的父级(如找不到,则是body)的距离

   .1.offsetTop

  2.offsetLeft

   第一种:当前标签有滚动条: offsetWidth =  clientWidth + 滚动条 + 边框

             通俗的讲: offsetWidth  =  开始设置的宽度     上面的解释分析     offsetWidth = 内容 +clientWidth + 滚动宽度(17px) +boder

            通俗的讲: offsetHeight =  开始设置的高度    上面的解释分析     offsetHeight =内容 +clientWidth + 滚动宽度(17px) +boder

  第二种:没有滚动条

             通俗的讲: offsetWidth  =  开始设置的宽度     上面的解释分析     offsetWidth = 内容 +clientWidth  +boder

            通俗的讲: offsetHeight =  开始设置的高度    上面的解释分析     offsetHeight =内容 +clientWidth +boder

    3.offsetWidth:元素自身的宽度(内容+padding+border)

    4.offsetHeight: 元素自身的高度

    5.offsetParent:可以查找它对应的父级

    扩展知识点: 

     1/在页面忘记设置了*{ margin:0;padding:0 } 等内容,知道了我们在盒子模型中,有的标签body,ul等标签在网页中是内置了margin的,我的理解是:标签通过浏览器内置的margin是属于标签自己的,所以为啥出现offset的取值为何不那么对应的情况.

     

 

二.client

    client 内容可视区 

  案例:设置div 宽100px ,高100px  padding: 10px  border:20px 不使用box-sizing;

 

     1.clientTop: 根据下面的例子: clientTop:10  

     2.clientLeft: 根据下面的例子: clientTop:10 

   第一种:没有滚动条:

               clientWidth  = 内容 + padding    clientWidth:120px

               clientHeight = 内容+ padding     clientHeight:120px

   第二种:有滚动条 : 

             clientWidth  =  内容 + padding   注意:滚动条 滚动条宽 17   clientWidth:103px;

             clientHeight = 内容 + padding   clientHeight:120px

     3.clientHeight::可视区的高度

     4.clientWidth:可视区的宽度

 

三.scroll

    scrollHeight:返回元素的整体高度

    scrollWidth:返回元素的整体宽度

     scrollTop: 返回元素上边缘与视图之间的距离

     scrollLeft: 返回元素左边缘与视图之间的距离

 

posted @ 2020-12-23 14:49  zmztyas  阅读(82)  评论(0编辑  收藏  举报