所以我遇到的问题是,我正在尝试为圆形html元素的填充设置动画。圆圈从灰色开始,用户将提供一个数字,圆圈将通过另一个蓝色圆圈填充到用户指定的原始圆圈的百分比来改变颜色。我很难弄清楚如何设置蓝色圆圈的动画或创建填充。
HTML
<div class="circle circle-outer-border">
<div class="circle circle-background">
<div class="circle circle-fill"></div>
</div>
</div>
CSS
.circle{
height: 200px;
width: 200px;
-moz-border-radius: 100px;
-webkit-border-radius: 100px;
}
.circle-outer-border{
border: 1px solid black;
}
.circle-background{
border: 20px solid #b1b1b1;
background-color: transparent;
margin-left: -1px; margin-top: -1px /** to make up for outer-border margin**/
}
.circle-fill{
border: 20px solid #147fc3;
background-color: transparent;
margin-left: -21px; margin-top: -21px;
}
所以我有三个圆圈,一个只是黑色边框,一个只显示灰色边框,第三个是第三个圆圈——我将动画化为"蓝色填充"的圆圈——我把它们叠在一起,以使其具有表盘填充的效果。同样,我只是不确定如何制作动画,有没有办法只显示蓝色圆圈的一部分,并不断显示更多,直到它显示整个蓝色圆圈?谢谢你的帮助。我在angularjs应用程序中写这篇文章,但还没有写angularjs的代码。
我只是稍微简化了一下您的解决方案。而不是3个DIV,只有2个。
外面的DIV画了一个圆圈,上面写着"我的孩子不能溢出来"。
内部DIV是一个简单的矩形。他是你的动画,从底部开始,上下移动他。
就像在船上看舷窗一样!
.circle{
height: 200px;
width: 200px;
}
.circle-outer-border{
position: relative;
border: 1px solid black;
border-radius: 100px;
-moz-border-radius: 100px;
-webkit-border-radius: 100px;
overflow: hidden;
}
.circle-fill{
position: absolute;
top: 0;
left: 0;
background-color: #147fc3;
}
.animated .circle-fill {
-webkit-animation: fillerup 5s infinite;
animation: fillerup 5s infinite;
}
.static .circle-fill {
top: 150px;
}
@-webkit-keyframes fillerup {
0% {
top: 200px;
}
100% {
top: 0px;
}
}
@keyframes fillerup {
0% {
top: 200px;
}
100% {
top: 0;
}
}
<div class="circle circle-outer-border animated">
<div class="circle circle-fill"></div>
</div>
<br/>
<div class="circle circle-outer-border static">
<div class="circle circle-fill"></div>
</div>