我在另一个div内有一个div,并应用了转换比例。
在应用比例尺后,我需要获取该div的宽度。 .width()的结果是元素的原始宽度。
请参阅此代码笔: https://codepen.io/anon/pen/ZMpBMP
问题图片:
希望这很清楚,谢谢。下面的代码:
HTML
<div class="outer">
<div class="inner">
</div>
</div>
CSS
.outer {
height: 250px;
width: 250px;
background-color: red;
position: relative;
overflow: hidden;
}
.inner {
background-color: green;
height: 10px;
width: 10px;
transform: translate(-50%);
position: absolute;
top: 50%;
left: 50%;
transform: scale(13.0);
}
JS
$(function() {
var width = $('.inner').width();
// I expect 130px but it returns 10px
//
// I.e. It ignores the zoom/scale
// when considering the width
console.log( width );
});
答案 0 :(得分:1)
您需要计算得出的值。这可以在CSS中完成。
使用calc()计算<div>
元素的宽度,该元素可以是任何元素:
#div1 {
position: absolute;
left: 50px;
width: calc(100% - 100px);
border: 1px solid black;
background-color: yellow;
padding: 5px;
text-align: center;
}
我发现了与此主题有关的内容。
Can i use Calc inside Transform:Scale function in CSS?
对于JS:
How do I retrieve an HTML element's actual width and height?
答案 1 :(得分:1)
使用getBoundingClientRect()
$(function() {
var width = $('.inner')[0].getBoundingClientRect();
// I expect 130px but it returns 10px
//
// I.e. It ignores the zoom/scale
// when considering the width
console.log(width.width);
});
答案 2 :(得分:0)
我以此获得了您的130分
var x = document. getElementsByClassName('inner');
var v = x.getBoundingClientRect();
width = v.width;