代码如下:
<!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()
方法,发现获取到的数值不是这个元素的,不准确。
请问有更好的方法吗?
我也遇到了这样的问题,解决方法是通过getBoundingClientRect()方法.
比如:
-js代码如下
-css代码如下