首页 > web前端 > css教程 > 如何创建一个在特定百分比处停止的 CSS 进度圈?

如何创建一个在特定百分比处停止的 CSS 进度圈?

DDD
发布: 2024-12-16 22:35:10
原创
312 人浏览过

How to Create a CSS Progress Circle that Stops at Specific Percentages?

带有部分完成指示的 CSS 进度圆

简介:

圆形进度条是一个用于指示进度或完成状态的通用 UI 元素。然而,许多 CSS 进度条显示达到 100% 的完整动画。本文演示了如何创建一个可以在特定百分比停止的 CSS 进度圈,如下图所示:

[部分完成的圆形进度条截图]

解决方案:

为了实现这一点,我们利用 CSS 剪辑和动画。 Clip 属性用于隐藏进度圆的一部分,而animation 属性则定义圆的旋转。

CSS 代码:

.wrapper {
  width: 100px;
  height: 100px;
  position: absolute;
  clip: rect(0px, 100px, 100px, 50px);
}

.circle {
  width: 80px;
  height: 80px;
  border: 10px solid green;
  border-radius: 50px;
  position: absolute;
  clip: rect(0px, 50px, 100px, 0px);
}

div[data-anim~=base] {
  -webkit-animation-iteration-count: 1; 
  -webkit-animation-fill-mode: forwards; 
  -webkit-animation-timing-function:linear; 
}

.wrapper[data-anim~=wrapper] {
  -webkit-animation-duration: 0.01s; 
  -webkit-animation-delay: 3s; 
  -webkit-animation-name: close-wrapper; 
}

.circle[data-anim~=left] {
  -webkit-animation-duration: 6s; 
  -webkit-animation-name: left-spin;
}

.circle[data-anim~=right] {
  -webkit-animation-duration: 3s; 
  -webkit-animation-name: right-spin;
}

@-webkit-keyframes right-spin {
  from {
    -webkit-transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(180deg);
  }
}

@-webkit-keyframes left-spin {
  from {
    -webkit-transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
  }
}

@-webkit-keyframes close-wrapper {
  to {
    clip: rect(auto, auto, auto, auto);
  }
}
登录后复制

HTML 代码:

<div class="wrapper" data-anim="base wrapper">
  <div class="circle" data-anim="base left"></div>
  <div class="circle" data-anim="base right"></div>
</div>
登录后复制

此解决方案可确保进度圈动画流畅,并且能够根据需要以特定百分比暂停。

以上是如何创建一个在特定百分比处停止的 CSS 进度圈?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板