【发布时间】:2019-03-19 10:35:46
【问题描述】:
我正在制作一个带有缩放框的动画,它以 8 像素四舍五入。参考:https://codepen.io/anon/pen/ePGxqy。但是,当盒子展开时,圆角很奇怪,我不想通过改变它在关键帧中的宽度来缩放它。如何正确缩放带有圆角边框的圆角框?
#box {
position: relative;
width: 55px;
height: 55px;
background: #aaa;
margin: 0 auto;
border-radius: 8px;
animation-name: singleRevert;
animation-duration: 3s;
animation-fill-mode: forwards;
}
#box:hover {
animation-name: singleExpend;
animation-duration: 3s;
animation-fill-mode: forwards;
}
@keyframes singleRevert {
0% {
transform: scaleX(7.5) scaleY(0.46)
}
50% {
transform: scaleX(1) scaleY(0.46)
}
100% {
transform: scaleX(1) scaleY(1)
}
}
@keyframes singleExpend {
0% {
transform: scaleX(1) scaleY(1)
}
50% {
transform: scaleX(1) scaleY(0.46)
}
100% {
transform: scaleX(7.5) scaleY(0.46)
}
}
<div id="box"></div>
【问题讨论】:
-
当你缩放一个元素时,它会拉伸,因此会给出这个结果。一个可能的解决方案是在缩放/动画时也将半径更改为
border-radius: 1px / 8px;