微信小程序 实现圆形进度条

js

data: {
    animationData: {}
  },
onLoad: function (options) {
   
    setTimeout(() => {
      var animation = wx.createAnimation({
        duration: 1500,
        timingFunction: 'ease',
      })
  
      this.animation = animation
      animation.rotate(180).step()
  
      this.setData({
        animationData:animation.export()
      })
    }, 1000);
  },

在wxml

<view class="circle-wrap">
    <view class="circle">
      <view class="mask full">
        <view class="fill"></view>
      </view>
      <view class="mask half">
        <view class="fill" animation="{{animationData}}"></view>
      </view>
      <view class="inside-circle"> 70% </view>
    </view>
  </view>

在wxss

/*圆形css进度条*/
.circle-wrap {
  margin: 50px auto;
  width: 150px;
  height: 150px;
  background: #e6e2e7;
  border-radius: 50%;
}

.circle-wrap .circle .mask,
.circle-wrap .circle .fill {
  width: 150px;
  height: 150px;
  position: absolute;
  border-radius: 50%;
}

.circle-wrap .circle .mask {
  clip: rect(0px, 150px, 150px, 75px);
}

.circle-wrap .circle .mask .fill {
  clip: rect(0px, 75px, 150px, 0px);
  background-color: #9e00b1;
}



.circle-wrap .inside-circle {
  width: 130px;
  height: 130px;
  border-radius: 50%;
  background: #fff;
  line-height: 130px;
  text-align: center;
  margin-top: 10px;
  margin-left: 10px;
  position: absolute;
  z-index: 100;
  font-weight: 700;
  font-size: 2em;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。