废话 不多少说 ,直接上代码

新建文件 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的更多相关文章

  1. 自定义控件之圆形颜色渐变进度条--SweepGradient

    前几天在群里面有人找圆形可颜色渐变进度条,其中主要的知识点是SweepGradient: mSweepGradient = new SweepGradient(240, 360, new int[] ...

  2. iOS圆弧渐变进度条的实现

    由于项目需要一个环形渐变进度条显示课程,这方便网上的确有很多相关资料但是,都是比较零散的而且,大多数只是放一堆代码就算完了.这里我想详细写一篇我自己实现这个进度条的过程. 实现一个圆弧进度条主要分为三 ...

  3. vue 圆形进度条组件解析

    项目简介 本组件是vue下的圆形进度条动画组件 自由可定制,几乎全部参数均可设置 源码简单清晰 面向人群 急于使用vue圆形进度条动画组件的同学.直接下载文件,拷贝代码即可运行. 喜欢看源码,希望了解 ...

  4. 【iOS】环形渐变进度条实现

    之前有人在找渐变进度条的效果,闲来无事就顺手写了一个,然后画了视图层级,方便讲解. 环境信息: Mac OS X 10.10.3 Xcode 6.3.1 iOS 8.3 效果图: 源码下载地址: ht ...

  5. amazeui学习笔记--css(常用组件13)--进度条Progress

    amazeui学习笔记--css(常用组件13)--进度条Progress 一.总结 1.进度条基本使用:进度条组件,.am-progress 为容器,.am-progress-bar 为进度显示信息 ...

  6. iOS 渐变进度条

    #import <UIKit/UIKit.h> @interface JianBianView : UIView //为了增加一个表示进度条的进行,可们可以使用mask属性来屏蔽一部分 @ ...

  7. svg和css3创建环形渐变进度条

    在负责的项目中,有一个环形渐变读取进度的效果的需求,于是在网上查阅相关资料整理一下.代码如下: <!DOCTYPE html> <html lang="en"&g ...

  8. vue 的进度条组件

    先看效果: 要想实现如上图的,进度跳效果,有两种方式,首先介绍第一种: 1.自己用 div 写一个,代码如下 <template> <div class="mfc-slid ...

  9. 详解HTML5中的进度条progress元素简介及兼容性处理

    一.progress元素基本了解 1.基本知识 progress元素属于HTML5家族,指进度条.IE10+以及其他靠谱浏览器都支持. 注释:Internet Explorer 9 以及更早的版本不支 ...

随机推荐

  1. linux中的交换分区(swap)及优化

    SWAP(交换内存) 1.什么是交换内存? 在硬盘上创建一块区域,当你的物理内存快要被用光的时候,内核临时的 物理内存上的文件数据交换到硬盘上的这段区域上面,当物理内存有闲置的时候 在把交换内存上的数 ...

  2. git 进行版本打标签

    一般给生产环境的代码新包进行打标签,以便查找,发布正式环境的各个不同版本作用,简单来说,就是给包命名,容易区分太多版本啦 获取系统中的所有标签或筛选特定特征的标签 git tag -a tagname ...

  3. Centos6进入单用户模式的两种方法

    单用户模式的作用 在使用Linux系统中,维护人员经常会碰到一个问题,就是在拥有root账号权限和密码的用户中,总是会出现忘记root密码的情况.遇到这种情况,一般情况下,维护人员就会通过最常用的方法 ...

  4. 2019年最新阿里Java工程师面试题

    一.单选题(共10题,每题5分) 1 关于设计模式遵循的原则,说法错误的是?   A.组合优于继承 B.针对实现编程 C.对扩展开放,对修改关闭 D.降低对象之间的耦合 参考答案:B 答案解析: 设计 ...

  5. 查看Linux服务器CPU总核数

    下面介绍查看Linux服务器CPU总核数的方法. 通过/proc/cpuinfo可查看CPU个数及总核数. [root@kevin ~]# grep processor /proc/cpuinfo | ...

  6. SpringCloud微服务(01):Eureka组件,管理服务注册与发现

    本文源码:GitHub·点这里 || GitEE·点这里 一.Eureka基本架构 1.Eureka简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,SpringCl ...

  7. Python 调用 Hprose接口、Dubbo接口、Java方法

    #!/usr/bin/env python # -*- coding:utf-8 -*- # ************************************* # @Time : 2019/ ...

  8. Java中String直接赋字符串和new String的一些问题

    今天课堂测试做了几道String的练习题,做完直接心态爆炸...... 整理自下面两篇博客: https://www.cnblogs.com/marsitman/p/11248001.html htt ...

  9. 易优CMS:if的基础用法

    [基础用法] 名称:if 功能:条件判断,比switch判断标签更灵活些,视个人习惯而用. 语法: {eyou:if condition='($eyou.field.has_children > ...

  10. Python3爬取豆瓣网电影信息

      # -*- coding:utf-8 -*- """ 一个简单的Python爬虫, 用于抓取豆瓣电影Top前250的电影的名称 Language: Python3.6 ...