【发布时间】:2021-08-24 21:19:35
【问题描述】:
我有三个进度圈,如下所示。我面临的问题是最后一个。我试图让它完成 3/4 圈,但我在 180 度标记处遇到问题。
下图显示了我希望进度条停止的位置,但我这辈子都无法解决。
图像上的箭头是我试图让它停下来的位置。
任何建议或指导将不胜感激。
.circle-wrap {
margin: 50px auto;
width: 240px;
height: 240px;
background: #e5e5e5;
border-radius: 50%;
transform: rotate(-125deg);
}
.circle-wrap .circle .mask,
.circle-wrap .circle .fill {
width: 240px;
height: 240px;
position: absolute;
border-radius: 50%;
}
.circle-wrap .circle .mask {
clip: rect(0px, 240px, 240px, 120px);
}
.circle-wrap .circle .mask .fill {
clip: rect(0px, 120px, 240px, 0px);
background-color: #ffe100;
}
.circle-wrap .circle .mask.full,
.circle-wrap .circle .fill {
animation: fill ease-in-out 3s forwards;
}
@keyframes fill {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate( var(--rt));
}
}
.circle-wrap .inside-circle {
width: 185px;
height: 185px;
border-radius: 50%;
background: #fff;
line-height: 185px;
text-align: center;
top: 28px;
left: 28px;
z-index: 100;
font-weight: 700;
font-size: 3.5rem;
letter-spacing: -4px;
transform: rotate(114deg);
font-style: italic;
font-family: brandon-grotesque;
padding: 0;
position: relative;
}
.circle-wrap .inside-circle span {
font-size: 1.5rem;
letter-spacing: 0;
}
.circle-wrap .inside-circle .cone {
width: 0;
height: 0;
border-left: 175px solid transparent;
border-right: 175px solid transparent;
border-top: 125px solid white;
border-radius: 50%;
transform: rotate(192deg);
position: absolute;
bottom: -33px;
left: -96px;
z-index: -1;
}
.circle-wrap .inside-circle .cone .dial-speeds {
transform: rotate(179deg);
position: relative;
z-index: 1;
font-weight: 400;
font-style: normal;
}
.circle-wrap .inside-circle .cone .dial-speeds .left {
position: absolute;
bottom: -78px;
width: 18px;
height: 20px;
left: -50px;
}
.circle-wrap .inside-circle .cone .dial-speeds .right {
position: absolute;
bottom: -78px;
width: 18px;
height: 20px;
right: -50px;
}
.circle-wrap .inside-circle .cone .dial-speeds .right span {
right: -16px;
top: -58px;
position: absolute;
font-size: 15px;
}
.circle-wrap .inside-circle .cone .dial-speeds .left span {
left: -16px;
top: -58px;
position: absolute;
font-size: 15px;
}
<div class="grid gap-0 grid-cols-3 text-left pt-24 max-w-[1000px] mx-auto">
<div class="circle-wrap">
<div class="circle">
<div class="mask full">
<div class="fill fill"></div>
</div>
<div class="mask half">
<div class="fill fill" style="--rt:85deg"></div>
</div>
<div class="inside-circle">
abc<span></span>
<div class="cone">
<div class="dial-speeds">
<div class="left">
<img src="">
<span>abc</span>
</div>
<div class="right">
<img src="">
<span>abc</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="circle-wrap">
<div class="circle">
<div class="mask full">
<div class="fill"></div>
</div>
<div class="mask half">
<div class="fill" style="--rt:125deg"></div>
</div>
<div class="inside-circle">
abc<span></span>
<div class="cone">
<div class="dial-speeds">
<div class="left">
<img src="">
<span>abc</span>
</div>
<div class="right">
<img src="">
<span>abc</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="circle-wrap">
<div class="circle">
<div class="mask full">
<div class="fill" style="--rt:180deg;"></div>
</div>
<div class="mask half" style="clip: rect(-71px, 404px, 240px, 0px);">
<div class="fill"></div>
</div>
<div class="inside-circle">
abc<span></span>
<div class="cone">
<div class="dial-speeds">
<div class="left">
<img src="">
<span>abc</span>
</div>
<div class="right">
<img src="">
<span>abc</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
【问题讨论】:
-
检查这里你可以找到更好(和更多更新日期)的想法来实现你想要的:stackoverflow.com/q/52205399/8620333
-
我也在寻找动画部分,这就是我正在努力超过 180 度标记的部分。
标签: html css css-animations