pwindy  
在完成任务的同时,还需要不断“复盘”,不论你多么的忙,都需要留下时间思考,可以思考哪些地方做的好,哪些地方我们可以改进,应该如何改进,注重总结才是王道

<!doctype html>
<html lang="en">
 
    <head>
        <meta charset="UTF-8" />
        <title>Document</title>
        <style type="text/css">
            * {
                padding: 0px;
                margin: 0px;
            }
             
            #main {
                width: 300px;
                height: 200px;
                background: red;
                margin-left: 300px;
                margin-top: 100px;
            }
        </style>
        <script type="text/javascript">
            window.onload = function() {
                var a = document.getElementById("main").getBoundingClientRect();
                console.log(a)
            }
        </script>
    </head>
 
    <body>
        <div id="main">
 
        </div>
    </body>
 
</html>

getBoundingClientRect()

    这个方法返回一个矩形对象,包含四个属性:left、top、right和bottom。分别表示元素各边与页面上边和左边的距离。

1.top、right、bottom、left

var box=document.getElementById('box');         // 获取元素

alert(box.getBoundingClientRect().top);         // 元素上边距离页面上边的距离

alert(box.getBoundingClientRect().right);       // 元素右边距离页面左边的距离

alert(box.getBoundingClientRect().bottom);      // 元素下边距离页面上边的距离

alert(box.getBoundingClientRect().left);        // 元素左边距离页面左边的距离

 

注意:IE、Firefox3+、Opera9.5、Chrome、Safari支持,在IE中,默认坐标从(2,2)开始计算,导致最终距离比其他浏览器多出两个像素,我们需要做个兼容。

 

document.documentElement.clientTop;  // 非IE为0,IE为2

document.documentElement.clientLeft; // 非IE为0,IE为2

functiongGetRect (element) {

    var rect = element.getBoundingClientRect();

    var top = document.documentElement.clientTop;

    var left= document.documentElement.clientLeft;

    return{

        top    :   rect.top - top,

        bottom :   rect.bottom - top,

        left   :   rect.left - left,

        right  :   rect.right - left

    }

}

分别加上外边据、内边距、边框和滚动条,用于测试所有浏览器是否一致。

2.width、height属性

  • width、height是元素自身的宽高

 

 

 

参考---https://www.cnblogs.com/libin-1/p/6137167.html

参考---https://www.jianshu.com/p/7cba62cf134e

posted on 2021-05-13 14:25  pwindy  阅读(532)  评论(0编辑  收藏  举报