【发布时间】:2015-10-27 19:54:04
【问题描述】:
我正在尝试制作进度条。
您会认为宽度为 1% 的 div 水平放大 100 倍会跨越其父级的宽度,但事实并非如此。留缝的空间量取决于我的窗口大小,所以我认为这可能是浏览器中的舍入问题。有什么我可以做的吗?
我经常更改此栏的进度,因此我不想每次都更改栏的宽度属性,因为这会导致performance issues。
body {
margin: 0;
padding: 0;
}
#container {
background-color: red;
position: fixed;
left: 0;
right: 0;
top: 0;
padding: 0;
margin: 0;
height: 100px;
}
#progress {
position: absolute;
left: 0;
top: : 0;
width: 1%;
height: 100%;
background-color: yellow;
transform: scale(100, 1);
transform-origin: left top;
}
<div id="container">
<div id="progress">
</div>
</div>
我还做了一个codepen来演示这个问题:http://codepen.io/bigblind/pen/Zbozjv
【问题讨论】:
-
只是从宽度 1% 过渡到宽度 100%,为什么要使用缩放?
-
为了性能。改变宽度意味着浏览器需要重新计算布局并重新绘制。每秒执行大约 5 次确实会导致性能问题。
-
对我来说听起来像是过早的优化,但是 ymmv。
-
相信我,现在还为时过早,我遇到了严重的性能问题,切换到转换解决了很多问题。
标签: css css-transforms