Vue实战--动态圆环百分比进度条
最近在开发小程序的时候,碰到一个实现圆环百分比进度条的需求,类似如下设计图:
小白的我感觉实现起来有难度,于是上百度看看别人是怎么做的,结果没找到一个满意的,要不是静态的实现,就是需要用到比较多的DOM
操作,小程序还是尽量避免直接操作DOM
。
下面是我以Vue组件形式做的一个动态的实现,先上效果图:
效果
实现步骤
画一个饼图
.pie {display: inline-block;position: relative;width: 150px;height: 150px;margin-top: 40px;border-radius: 50%;background: #ccc;background-image: linear-gradient(to right, transparent 50%, #4479FD 0);color: transparent;text-align: center;
}
实现占比效果
通过添加伪元素遮挡和移动实现,代码如下:
.pie::before {content: '';position: absolute;top: 0; left: 50%;width: 50%; height: 100%;border-radius: 0 100% 100% 0 / 50%;background-color: inherit;transform-origin: left;animation: spin 5s linear infinite, bg 10s step-end infinite;
}
@keyframes spin {to { transform: rotate(.5turn); }
}
@keyframes bg {50% { background: #4479FD; }
}
使用CSS动画延迟属性
将上面的animation
动画时间分别改为50, 100,这样可以直接在animation-delay
传入相应的延迟秒数,比如-60s则是显示在百分之六十
animation-play-state: paused;
animation-delay: -60s;
实现圆环形状
直接在div
里加上一个定位的div
<div class="pie"><div class="pie-inner">{{num}}%</div>
</div>
加上一个匀速动画
startAnimate (step, limit, speed) {setTimeout(() => {// num 为百分比if (this.num < limit) {this.num += stepthis.startAnimate(step, limit, speed)} else {this.num = limit}}, speed)
}
给animation-delay
绑定计算属性
实时根据num
转化为相应的延迟秒数
computed: {delay () {return `-${this.num}s`}
}
总结
至此,一个动态的圆环百分比进度条基本实现了,还不是很完善,有什么意见或者疑问欢迎提出来~
Vue实战--动态圆环百分比进度条相关推荐
- 微信小程序canvas 画动态圆环百分比进度条实例 根据手机屏幕宽度自适应放大缩小
这里是wxml代码: <component-analysis-report active="0" bindselectReport="selectReport&qu ...
- java如何画百分比圆环_canvas绘制旋转的圆环百分比进度条
作者:依然 | 时间:2015-05-29 | 阅读:122 canvas绘制旋转的圆环百分比进度条 从上一篇的文章使用HTML5 Canvas arc()绘制圆形/圆环 我们了解到了怎么使用ca ...
- vue 圆形百分比进度条_vue实用组件——圆环百分比进度条
有需要的人可以参考一下,如果试用过,发现问题,欢迎留言告知,不胜感激. 功能介绍: 1.若页面无刷新,且第一次传值小于第二次传值或者圆环初始化时执行的是递增动画 2.若页面无刷新,且第一次传值大于第二 ...
- 用Canvas画圆环百分比进度条
<!DOCTYPE html> <html> <head><meta charset="utf-8"><meta http-e ...
- YCProgress自定义百分比进度条
目录介绍 1.本库优势亮点 2.使用介绍 2.1 圆环百分比进度条 2.2 直线百分比进度条 2.3 仿杀毒类型百分比进度条 3.注意要点 4.效果展示 5.其他介绍 1.本库优势亮点 圆环百分比进度 ...
- android 画圆弧动画,『Android自定义View实战』自定义带入场动画的弧形百分比进度条...
写在前面 这是在简书发表的处女座,这个想法也停留在脑海中很久了,一直拖到现在(懒癌发作2333),先自我介绍一番,一枚刚毕业不久的Android程序猿,初出茅庐的Android小生,之前一直在CSDN ...
- uni-app中自定义图表(canvas实现chart图表)开发篇(1)-圆环带进度条
经常开发中,会遇到各种各样图表,这时大家普遍会想到去找插件.uniapp中常用的有uchart.js和echart.js,这对图表要求不高的项目来说,是很便捷的.但有时会遇到一些定制图表,加上UI的美 ...
- android绘制环形进度_Android动态自定义圆形进度条
这篇文章主要介绍了Android动态自定义圆形进度条,需要的朋友可以参考下 效果图: A.绘制圆环,圆弧,文本 //1.画圆环 //原点坐标 float circleX = width / 2; fl ...
- vue自适应带圆圈的进度条实现#根据数量占比计算进度条长度#颜色可控
一些组件库例如ele的进度条实现只是简单的实现进度条样式,进度条的长度是百分比形式,未做到占比数/总数 去动态计算,这是我在这里要去实现的 不罗嗦,先看样式 <!--@name:进度条封装@de ...
最新文章
- jvm误区--动态对象年龄判定
- 【新番前线】2009年公开剧场版动画汇总
- 基于深度学习的FAQ问答系统
- 【AI算法模型评测】2 如何评价多标签分类模型的好坏?
- 前端面试常考题:JS垃圾回收机制
- python真好玩 pdf_编程真好玩(青少年学Python一本通)
- 水电缴费系统php源码_CBMS水电预付费系统
- 谷歌浏览器实现按下按键的脚本_谷歌浏览器快捷键设置方法详解
- pyqt 取鼠标处文字_侧裙可拆按键随心装,黑爵GTi模块化游戏鼠标评测
- 山东海王星·关于国内文旅水上乐园的运营营销构思
- Python 3.6 使用wordcloud制作词云(可设背景图像)
- 八、CSS基础选择器
- 在StarRocks中建立ClickHouseJDBC外表
- python计算向量的模_计算Python Numpy向量之间的欧氏距离实例
- 在Chrome 浏览器上滚动截屏
- Learning Docker 学习Docker Lynda课程中文字幕
- web前端-JS(DOM、BOM)
- c语言实现天气预报步骤,天气预报的制作流程
- TCP粘包和拆包问题及其解决方法
- 配置nginx.conf实现80端口重定向至443(http跳转https)
热门文章
- 十大蓝牙操作实例,助你深入解析蓝牙技术应用
- IAR中使用struct强制对齐时的一个问题及解决
- FFmpeg批量转化wav为MP3
- NPU算力集成解决方案
- 计算机桌面有一条红线去不掉,电脑屏幕中间有一条红线,请问怎么除去?
- html导航栏圆角,纯css实现蓝色圆角效果水平导航菜单代码
- 360N5全网通QPST备份NV和恢复教程
- WiFi共享精灵下载好了,但是打不开怎么破
- 母亲节礼物之wifi共享精灵
- 数字式声纳设计原理 pdf_阿里P7大牛,深入剖析JVM底层设计原理+高级特性pdf,附46页ppt...