请马上登录,朋友们都在花潮里等着你哦:)
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 马黑黑 于 2025-3-12 23:02 编辑
JS内置的API getBoundingClientRect 基于元素级,它将返回一个DOMRect 即盒子模型的矩形相关数据对象,该对象提供元素盒子的矩形相关的属性值,如方位、尺寸等信息。DOMRect对象返回的信息有限但非常有用,但是不可以迭代,因此可以考虑使用变通的方式遍历它返回的所有数据。下面的代码设置一个数组,数组元素所对应的属性正是 DOMRect 对象返回的键名但最后一个数组元素 margin 不属于它返回的对象信息范畴(因此演示效果中它的值是 undefined),然后通过遍历数组读取对所有的 DOMRect 对象返回的信息并将结果显示在被检测的div元素中:
<style>
.pa {
margin: 20px auto;
width: 600px;
height: 240px;
border: 1px solid gray;
padding: 20px;
box-sizing: border-box;
}
</style>
<div class="pa"></div>
<script>
const pa = document.querySelector('.pa');
const rect = pa.getBoundingClientRect();
const vals = ['x', 'y', 'top', 'right', 'bottom', 'left', 'width', 'height', 'padding'];
let msg = '';
vals.forEach(v => {
msg += `${v}: ${rect[v],`;
});
pa.innerText = msg;
</script>
效果:
|