CircleProgress 圆形进度条

展示操作或任务的当前进度,比如上传文件,是一个圆形的进度条。
注意:此组件的percent值只能动态增加,不能动态减少。

内部实现

组件内部通过uni的canvas组件实现,有更好的性能和通用性。

说明

圆形进度条用简单的css也能实现,为何要用复杂的canvas?这跟uView的愿景相关,我们希望后面扩展出仪表盘,其他复杂图表类的组件, 而这些组件的实现,不归css管。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序

基本使用

  • 通过percent设置当前的进度值,该值区间为0-100
  • 通过active-color设置圆环的颜色,也可以直接设置type主题颜色,使用预置值
  • 通过默认slot传入内容,将会显示在圆环的内部
  1. <template>
  2. <u-circle-progress active-color="#2979ff" :percent="80">
  3. <view class="u-progress-content">
  4. <view class="u-progress-dot"></view>
  5. <text class='u-progress-info'>查找中</text>
  6. </view>
  7. </u-circle-progress>
  8. </template>
  9. <style lang="scss" scoped>
  10. .u-progress-content {
  11. display: flex;
  12. align-items: center;
  13. justify-content: center;
  14. }
  15. .u-progress-dot {
  16. width: 16rpx;
  17. height: 16rpx;
  18. border-radius: 50%;
  19. background-color: #fb9126;
  20. }
  21. .u-progress-info {
  22. font-size: 28rpx;
  23. padding-left: 16rpx;
  24. letter-spacing: 2rpx
  25. }
  26. </style>

设置圆环的动画时间

通过duration设置圆环从0递增到100%(也即一圆周)所需的时间,如需动态修改进度值时会用到,比如用户进行某一个操作之后, 需要把进度值从30%改为80%,这里增加了50%(80% - 30% = 50%),也即半个圆周,所需时间为duration的一半,因为duration值为一个圆周的时间。

  1. <u-circle-progress type="primary" :percent="30" duration="2000"></u-circle-progress>

API

Props

参数说明类型默认值可选值
percent圆环进度百分比值,为数值类型,0-100String | Number--
inactive-color圆环的底色,默认为灰色(该值无法动态变更)String#ececec-
active-color圆环激活部分的颜色(该值无法动态变更)String#19be6b-
width整个圆环组件的宽度,高度默认等于宽度值,单位rpxString | Number200-
border-width圆环的边框宽度,单位rpxString | Number14-
duration整个圆环执行一圈的时间,单位msString | Number1500-
type如设置,active-color值将会失效String-success / primary / error / info / warning
bg-color整个组件背景颜色,默认为白色String#ffffff-