vue 渐变 进度条 progress
废话 不多少说 ,直接上代码
新建文件 gradual-progress.vue
<!--
* @Author: gfc
* @Date: 2019-11-07 14:00:11
* @LastEditors: gfc
* @LastEditTime: 2019-11-13 10:24:44
* @Description: cp 渐变式进度条
eg:
<cp-progress :percentage="progressnum" style="width:300px"></cp-progress>
-->
<template>
<div class="cp-progress-main">
<div class="cp-progress-bg" :style="{ 'border-radius': bRadius+'px'}">
<div class="cp-progress-bar"
:style="{ width: getPercentage+'%' ,background:getGradient,height:strokeWidth+'px' ,'border-radius': bRadius+'px'}"></div>
</div>
<div class="cp-progress-text" :style="{ 'line-height': (strokeWidth+16)+'px'}">{{getPercentage}}%</div>
</div>
</template>
<script> export default {
data () {
return { }
},
computed: {
// 通过比例 获取 百分比
getPercentage () {
if (this.percentage < 0) {
return 0
} else if (this.percentage > 1) {
return 100
} else {
// console.log(this.percentage)
return parseInt((this.percentage + 0.000006) * 100)
}
},
// 获取 进度条颜色对象
getGradient () {
let linecolor = this.getColorItem(this.percentage)
if (linecolor) {
return 'linear-gradient(90deg,' + linecolor.s + ',' + linecolor.e + ')'
} else {
return ''
}
}
},
methods: {
// 根据进度 获取颜色数组
getColorItem (p) {
let mp = this.getPercentage
for (let sub of this.linearColors) {
if (!sub.ef && mp <= sub.v) {
return sub
} else if (sub.ef && mp < sub.v) {
return sub
}
}
return null
}
},
props: {
// 设置 进度条的 弧度
bRadius: {
type: Number,
default: 4
},
textInside: {
type: Number,
default: 100
},
// 进度条的高度 就是粗细度
strokeWidth: {
type: Number,
default: 8
},
// 进度条 的百分比 [0-1] 的小数
percentage: {
type: Number,
default: 0
},
// 进度条 每个阶段的 颜色组
linearColors: {
type: Array,
default: function () {
return [{ v: 25, s: '#F7564A', e: '#F7564A' }, { v: 50, s: '#F7564A', e: '#F7E04B' }, { v: 100, s: '#F7E04B', e: '#25CCDB', ef: true }, { v: 100, s: '#25CCDB', e: '#25CCDB' }]
}
}
}
}
</script>
<style lang="scss" scoped>
.cp-progress-main {
display: flex;
.cp-progress-bg {
width: 50px;
background: #eaedf4;
flex: 1;
margin: 8px 0;
.cp-progress-bar {
transition: width 1s;
}
}
.cp-progress-text {
width: 50px;
font-size: 12px;
font-weight: 400;
color: #333333; margin-left: 10px;
}
}
</style>
使用方法:
<cp-progress :percentage="progressnum" style="width:300px"></cp-progress>
progressnum : [0-1]
不同的阶段 不同颜色进行设置:已经默认了一组颜色
linearColors
[{ v: 100, s: '#F7E04B', e: '#25CCDB', ef: true }]
v 标识设置的百分比 s为开始颜色 ,e 为结束颜色 ef:标识 包不包含 v这个值,true 标识不包含,默认false包含
v 的值需要从小到大 范围[0-100]
效果:

vue 渐变 进度条 progress的更多相关文章
- 自定义控件之圆形颜色渐变进度条--SweepGradient
前几天在群里面有人找圆形可颜色渐变进度条,其中主要的知识点是SweepGradient: mSweepGradient = new SweepGradient(240, 360, new int[] ...
- iOS圆弧渐变进度条的实现
由于项目需要一个环形渐变进度条显示课程,这方便网上的确有很多相关资料但是,都是比较零散的而且,大多数只是放一堆代码就算完了.这里我想详细写一篇我自己实现这个进度条的过程. 实现一个圆弧进度条主要分为三 ...
- vue 圆形进度条组件解析
项目简介 本组件是vue下的圆形进度条动画组件 自由可定制,几乎全部参数均可设置 源码简单清晰 面向人群 急于使用vue圆形进度条动画组件的同学.直接下载文件,拷贝代码即可运行. 喜欢看源码,希望了解 ...
- 【iOS】环形渐变进度条实现
之前有人在找渐变进度条的效果,闲来无事就顺手写了一个,然后画了视图层级,方便讲解. 环境信息: Mac OS X 10.10.3 Xcode 6.3.1 iOS 8.3 效果图: 源码下载地址: ht ...
- amazeui学习笔记--css(常用组件13)--进度条Progress
amazeui学习笔记--css(常用组件13)--进度条Progress 一.总结 1.进度条基本使用:进度条组件,.am-progress 为容器,.am-progress-bar 为进度显示信息 ...
- iOS 渐变进度条
#import <UIKit/UIKit.h> @interface JianBianView : UIView //为了增加一个表示进度条的进行,可们可以使用mask属性来屏蔽一部分 @ ...
- svg和css3创建环形渐变进度条
在负责的项目中,有一个环形渐变读取进度的效果的需求,于是在网上查阅相关资料整理一下.代码如下: <!DOCTYPE html> <html lang="en"&g ...
- vue 的进度条组件
先看效果: 要想实现如上图的,进度跳效果,有两种方式,首先介绍第一种: 1.自己用 div 写一个,代码如下 <template> <div class="mfc-slid ...
- 详解HTML5中的进度条progress元素简介及兼容性处理
一.progress元素基本了解 1.基本知识 progress元素属于HTML5家族,指进度条.IE10+以及其他靠谱浏览器都支持. 注释:Internet Explorer 9 以及更早的版本不支 ...
随机推荐
- 以太网驱动的流程浅析(三)-ifconfig的-19错误最底层分析【原创】
以太网驱动流程浅析(三)-ifconfig的-19错误最底层分析 Author:张昺华 Email:920052390@qq.com Time:2019年3月23日星期六 此文也在我的个人公众号以及& ...
- 31(1).密度聚类---DBSCAN算法
密度聚类density-based clustering假设聚类结构能够通过样本分布的紧密程度确定. 密度聚类算法从样本的密度的角度来考察样本之间的可连接性,并基于可连接样本的不断扩张聚类簇,从而获得 ...
- iconv转换
/////////////////////////////////////////////////////// #include <iconv.h> #include <stdlib ...
- ospf邻居建立过程
1. hello报文的作用 邻居发现:自动发现邻居路由器. 邻居建立:完成Hello报文中的参数协商,建立邻居关系. 邻居保持:通过Keepalive机制,检测邻居运行状态. hello报文的发送时间 ...
- Java之String类
String类概述 java.lang.String 类代表字符串.Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例.其实就是说:程序当中所有的双引 ...
- vue使用--vuex快速学习与使用
什么是vuex? Vuex核心概念 Vuex安装与使用 1.安装 2.目录结构与vuex引入 3.store中变量的定义.管理.派生(getter) 4.vuex辅助函数的使用说明 Vuex刷新数据丢 ...
- Python爬虫的概括以及实战
第一章主要讲解爬虫相关的知识如:http.网页.爬虫法律等,让大家对爬虫有了一个比较完善的了解和一些题外的知识点. 今天这篇文章将是我们第二章的第一篇,我们从今天开始就正式进入实战阶段,后面将会有更 ...
- Linux习题小结
1.输出当前下的目录.ls -l 长格式输出. (1)使用grep 因为第一个 ls -l 的第一个标识代表的是文件类型,所以使用 grep 过滤以 d 开头的行,输出的就只是目录了. 正则表达式 g ...
- 01-Java类加载机制详解
类的加载过程 在使用java命令运行主类(main)的时候,首先要通过类加载器将类加载到JVM内存中去.主类在运行过程中如果用到其他的类就会逐步加载这些类.jar包里的类并不是一次性加载的,是使用的时 ...
- jquery.wordexport.js打印echarts.js画出的柱状图
jquery.wordexport.js打印echarts.js画出的柱状图. echarts画出的图是不能直接打印出来的(echarts的柱状图是用canvas画出来的),而jquery.worde ...