getBoundingClientRect() 详解

getBoundingClientRect() 详解getBoundingClientRect() 返回的是矩形的集合,表示了当前盒子在浏览器中的位置以及自身占据的空间的大小

getBoundingClientRect()

getBoundingClientRect() 返回的是矩形的集合,表示了当前盒子在浏览器中的位置以及自身占据的空间的大小,除了 widthheight 以外的属性是相对于 视图窗口的左上角 来计算的。

如:bottom盒子底部边框 距离 视口顶部 的距离;right盒子右侧边框距离视口左侧的距离。

位置相关属性:

getBoundingClientRect()

getBoundingClientRect() 返回的是矩形的集合,表示了当前盒子在浏览器中的位置以及自身占据的空间的大小,除了 widthheight 以外的属性是相对于 视图窗口的左上角 来计算的。

如:bottom盒子底部边框 距离 视口顶部 的距离;right盒子右侧边框距离视口左侧的距离。

位置相关属性:

getBoundingClientRect.png

自身宽高属性:

如果是标准盒子模型,元素的尺寸等于width/height + padding + border-width的总和。如果box-sizing: border-box,元素的的尺寸等于 width/height。

实例

盒子有无滚动条,对该方法没有影响,它获取的是盒子在页面上占据的空间,滚动的区域是隐藏起来的内容,不会影响该方法的宽高。

<style> * { margin: 0; padding: 0; } .box { width: 400px; height: 200px; margin: 100px auto; border: 1px solid #ccc; } .child { width: 200px; height: 100px; margin: 20px; border: 1px solid #ccc; } </style>
<body>
  <div class="box">
    <div class="child">
      child
    </div>
  </div>
</body>
<script> const childDom = document.querySelector('.child'); console.log(childDom.getBoundingClientRect()); // --- 相对于视口左上角的位置,均是 numer --- // top: 100 --- 盒子上边框距离视口顶部的距离 // bottom: 302 --- 盒子底边框距离视口顶部的距离 = top + height // left: 394 --- 盒子左边框距离视口左侧的距离 // right: 796 --- 盒子右边框距离视口左侧的距离 = left + width // x: 394 --- 盒子左上角相对于视口左侧的距离 // y: 100 --- 盒子左上角相对于视口顶部的距离 // 盒子的宽高 // width: 402 // height: 202 </script>

自身宽高属性:

如果是标准盒子模型,元素的尺寸等于width/height + padding + border-width的总和。如果box-sizing: border-box,元素的的尺寸等于 width/height。

实例

盒子有无滚动条,对该方法没有影响,它获取的是盒子在页面上占据的空间,滚动的区域是隐藏起来的内容,不会影响该方法的宽高。

<style> * { margin: 0; padding: 0; } .box { width: 400px; height: 200px; margin: 100px auto; border: 1px solid #ccc; } .child { width: 200px; height: 100px; margin: 20px; border: 1px solid #ccc; } </style>
<body>
  <div class="box">
    <div class="child">
      child
    </div>
  </div>
</body>
<script> const childDom = document.querySelector('.child'); console.log(childDom.getBoundingClientRect()); // --- 相对于视口左上角的位置,均是 numer --- // top: 100 --- 盒子上边框距离视口顶部的距离 // bottom: 302 --- 盒子底边框距离视口顶部的距离 = top + height // left: 394 --- 盒子左边框距离视口左侧的距离 // right: 796 --- 盒子右边框距离视口左侧的距离 = left + width // x: 394 --- 盒子左上角相对于视口左侧的距离 // y: 100 --- 盒子左上角相对于视口顶部的距离 // 盒子的宽高 // width: 402 // height: 202 </script>

今天的文章getBoundingClientRect() 详解分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/18237.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注