vue圆形进度条,vue 进度条 百分比

  vue圆形进度条,vue 进度条 百分比

  本文主要详细介绍了用Vue实现动态圆百分比进度条。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

  最近在开发一个小程序的时候,碰到一个实现圆百分比进度条的需求,类似于下面这个设计图:

  小白,我觉得很难实施,所以我去百度看看别人是怎么做的。结果没找到满意的。如果不是静态实现,就需要使用更多的DOM操作。小程序还是尽量避免直接操作DOM

  下面是我以Vue组件的形式做的一个动态实现,首先是渲染图:

  

效果

  

实现步骤

  画一个饼图。馅饼{

  显示:内嵌-块;

  位置:相对;

  宽度:150px

  高度:150px

  边距-顶部:40px

  边界半径:50%;

  背景:# ccc

  背景图像:线性渐变(向右,透明50%,# 4479 FD 0);

  颜色:透明;

  文本对齐:居中;

  }

  实现占比效果

  通过添加伪元素遮挡和移动,代码如下:馅饼:之前{

  内容:“”;

  位置:绝对;

  top:0;左:50%;

  宽度:50%;身高:100%;

  边框半径:0 100% 100% 0/50%;

  背景色:继承;

  变换-原点:左;

  动画:自旋5s线性无限,bg 10s步端无限;

  }

  @关键帧旋转{

  to { transform:rotate(. 5 turn);}

  }

  @关键帧背景{

  50% {背景:# 4479FD}

  }

  使用CSS动画延迟属性

  将以上animation动画时间分别改为50,100,这样就可以在animation-delay中直接输入对应的延迟秒数,比如-60s显示为60%。

  动画-播放-状态:暂停;

  动画-延时:-60s;

  实现圆环形状

  在div中直接加一个定位div

  div class=馅饼

  div class=pie-inner

  { {数字}}%

  /div

  /div

  加上一个匀速动画

  startAnimate(步进、极限、速度){

  setTimeout(()={

  //num是百分比。

  if (this.num limit) {

  this.num=步骤

  this.startAnimate(步长、极限、速度)

  }否则{

  this.num=限制

  }

  },速度)

  }

  将计算属性绑定到animation-delay

  根据实时num,换算成相应的延时秒数。

  计算值:{

  延迟(){

  返回`-${this.num}s

  }

  }

  

总结

  到目前为止,已经基本实现了一个动态的圆百分比进度条,但是还不完善。请随时提出任何意见或问题。

  这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: