CSS3如何查看获取scale缩放后的元素宽高?

代码如下:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>text</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <!-- <link href="css/style.css" rel="stylesheet"> -->
        <style type="text/css">
            *{
                margin:0;
                padding: 0;
            }
            html,body{
                height: 100%;
                width: 100%;
            }
            .fa{
                height: 100%;
                background-color:green;
            }
            .small{
                width: 100px;
                height: 100px;
                background-color: red;
            }
        </style>
    </head>
    <body>
        <div class="fa">
            <div class="small"></div>
        </div>
        <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                var faH=$(".fa").height();
                var faW=$(".fa").width();
                var smH=$(".small").height();
                var smW=$(".small").width();
                console.log("父盒子的高度:"+faH);
                console.log("父盒子的宽度:"+faW);
                var overviewheight=100;
                var overviewwidth=100;
                var scaleY=faH/overviewheight,
                    scaleX=faW/overviewwidth;
                console.log("Y的比例:"+scaleY+" X的比例:"+scaleX);
                $(".small").css("transform","scaleY("+scaleY+")"+"scaleX("+scaleX+")");
                console.log("子盒子的高度:"+smH);
                console.log("子盒子的宽度:"+smW);
            })
        </script>
    </body>
</html>

scale属性设置后,盒子还是占用原来的宽高,但实际上大小已经发生了变化,我试过用getBoundingClientRect()方法,发现获取到的数值不是这个元素的,不准确。
请问有更好的方法吗?

阅读 4.6k
评论 2017-12-29 提问
    3 个回答

    我也遇到了这样的问题,解决方法是通过getBoundingClientRect()方法.
    比如:
    -js代码如下

        let Div = document.getElementsByTagName('div')
        Div.getBoundingClientRect().width;//获取div放大(缩小)后的宽度
        Div.getBoundingClientRect().height;//获取div放大(缩小)后的高度

    -css代码如下

    div {
      width: 100px;
      height: 100px;
      background: #ccc;
      text-align: center; 
      line-height: 100px;    
      -webkit-transform: scale(2);
    }

    评论 赞赏