我有一个使用CSS关键帧扩展的圆圈,具有固定的定位。问题是,当圆圈改变大小时,圆圈的中心会移动(而左上角保持固定)。如何确保动画期间中心固定?有没有办法指定"起源"这个div是不是左上角了?
<div id="circle"></div>
和
#circle {
position: fixed;
background: #07F;
border-radius: 50%;
animation: expand linear 3s infinite;
top: 10px;
left: 10px;
}
@keyframes expand {
0% {
width: 100px;
height: 100px;
}
100% {
width: 500px;
height: 500px;
}
}
答案 0 :(得分:4)
另一种选择,您可以使用transform - scale
属性来增加维度,然后transform-origin
使其保持居中:
#circle {
position: fixed;
background: #07F;
border-radius: 50%;
animation: expand linear 3s infinite alternate;
top: 10px;
left: 10px;
transform-origin: center;
width: 100px;
height: 100px;
}
@keyframes expand {
0% {
transform: scale(1);
}
100% {
transform: scale(5);
}
}
&#13;
<div id="circle"></div>
&#13;
答案 1 :(得分:3)
试试这个:
#circle {
position: fixed;
background: #07F;
border-radius: 50%;
animation: expand linear 3s infinite alternate;
top: calc(10px + 50px); /* 10px + (half of the initial height) */
left: calc(10px + 50px); /* 10px + (half of the initial width) */
transform: translate(-50%, -50%)
}
@keyframes expand {
0% {
width: 100px;
height: 100px;
}
100% {
width: 500px;
height: 500px;
}
}
<div id="circle"></div>