getBoundingClientRect()
getBoundingClientRect()
返回的是矩形的集合,表示了当前盒子在浏览器中的位置以及自身占据的空间的大小,除了 width
和 height
以外的属性是相对于 视图窗口的左上角
来计算的。
如:bottom
是盒子底部边框
距离 视口顶部
的距离;right
是盒子右侧边框
距离视口左侧
的距离。
位置相关属性:
getBoundingClientRect()
getBoundingClientRect()
返回的是矩形的集合,表示了当前盒子在浏览器中的位置以及自身占据的空间的大小,除了 width
和 height
以外的属性是相对于 视图窗口的左上角
来计算的。
如:bottom
是盒子底部边框
距离 视口顶部
的距离;right
是盒子右侧边框
距离视口左侧
的距离。
位置相关属性:
自身宽高属性:
如果是标准盒子模型,元素的尺寸等于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