vue柱状进度条图像的完美实现方案


Posted in Javascript onAugust 26, 2019

前言

本文是对bar进度条实现的2种方案进行分享,第一种是很简单,纯css的实现,第二种是echart的实现。

css的实现

css实现很简单。代码如下:

<template>
 <div class="haoroomflex">
  <div v-for="(item,index) in barData" :key="index" class="onebar">
   <div class="bar">
    <span class="progress" :style="{'height':`${item.value*100}%`}" />
   </div>
   <div class="sfont">{{ item.date }}</div>
  </div>

 </div>
</template>
<script>

export default {
 props: {
  barData: {
   type: Array,
   default() {
    return [
     { date: '', value: 0 },
     { date: '', value: 0 },
     { date: '', value: 0 }
    ]
   }
  }
 }

}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.haoroomflex{display: flex;margin:0 15px;}
.onebar{
 flex:1;
 text-align: center;
 min-width: 30px;
 max-width: 100px;
 display: inline-block;
 .sfont{
  color:#999;
  font-size:14px;
 }
 .bar{
  height: 160px;
  width:24px;
  margin:5px auto;
  -webkit-border-radius: 24px;
  border-radius: 24px;
  overflow: hidden;
  position: relative;
  background: #e5e5e5;
  span.progress {
   position: absolute;
   bottom:0;
   height: 0;
   width: 100%;
   display: block;
   -webkit-border-radius: 24px;
   border-radius: 24px;
   -webkit-transition: height 2s ease-out;
   -o-transition: height 2s ease-out;
   transition: height 2s ease-out;
   background: #3990FF

  }
 }
}
</style>

效果如下

vue柱状进度条图像的完美实现方案 

echart实现

<template>
 <div class="linechartWrap">
  <v-chart class="barchart" :options="options" autoresize />
 </div>
</template>

<script>
import ECharts from 'vue-echarts'
import 'echarts/lib/chart/bar'
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/title'
import 'echarts/lib/component/toolbox'

export default {
 components: {
  'v-chart': ECharts
 },
 props: {
  barData: {
   type: Object,
   default() {
    return {
     data: [11, 33, 77],
     title: ['07-01', '07-02', '07-03']
    }
   }
  }
 },
 computed: {
  options() {
   return {
    grid: {
     show: 'true',
     borderWidth: '0',
     height: '72%',
     width: '90%',
     x: '12%',
     y: '20%'
    },
    tooltip: {
     trigger: 'axis',
     axisPointer: {
      type: 'none'
     },
     formatter: '{b0}: {c0}%'
    /* formatter: function(params) {
      var result = '';
      params.forEach(function (item) {
        result += item.marker + " " + item.seriesName + " : " + item.value +"</br>";
      });
      return result;
    }*/
    },
    backgroundColor: '#fff', // 背景色
    yAxis: {
     show: false, // 是否显示x轴
     type: 'value'
    },
    xAxis: {
     type: 'category',
     axisLabel: {
      show: true,
      textStyle: {
       color: '#666' // y轴字体颜色
      }
     },
     splitLine: { show: false }, // 横向的线
     axisTick: { show: false }, // y轴的端点
     axisLine: { show: false }, // y轴的线
     data: this.barData.title
    },
    series: [
     {
      type: 'bar',
      itemStyle: {
       normal: {
        barBorderRadius: 25,
        color: '#3990FF'
       }
      },
      barWidth: 25,
      data: this.barData.data
     },
     {
      name: '外框',
      type: 'bar',
      itemStyle: {
       normal: {
        barBorderRadius: 25,
        color: '#e5e5e5' // rgba设置透明度0.14
       }
      },
      barGap: '-100%',
      z: 0,
      barWidth: 25,
      data: [100, 100, 100]
     }
    ]
   }
  }
 }

}
</script>

代码地址

代码已经上传github,地址是: https://github.com/confidence68/bar_precent_css

总结

以上所述是小编给大家介绍的vue柱状进度条图像的完美实现方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
用javascript动态调整iframe高度的代码
Apr 10 Javascript
js tab效果的实现代码
Dec 26 Javascript
Jquery ThickBox插件使用心得(不建议使用)
Sep 08 Javascript
javascript 在firebug调试时用console.log的方法
May 10 Javascript
JavaScript学习笔记之JS事件对象
Jan 22 Javascript
AngularJS使用ng-options指令实现下拉框
Aug 23 Javascript
js实现手机拍照上传功能
Jan 17 Javascript
js 调用百度分享功能
Feb 27 Javascript
js判断手机系统是android还是ios
Mar 07 Javascript
JS实现AES加密并与PHP互通的方法分析
Apr 19 Javascript
BootStrap的两种模态框方式
May 10 Javascript
Bootstrap 3多级下拉菜单实例
Nov 23 Javascript
React传值 组件传值 之间的关系详解
Aug 26 #Javascript
js实现指定时间倒计时效果
Aug 26 #Javascript
Vue.use()在new Vue() 之前使用的原因浅析
Aug 26 #Javascript
微信小程序事件 bindtap bindinput代码实例
Aug 26 #Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
Aug 26 #Javascript
微信小程序实现手势滑动效果
Aug 26 #Javascript
详解nuxt 微信公众号支付遇到的问题与解决
Aug 26 #Javascript
You might like
递归列出所有文件和目录
2006/10/09 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
jquery 常用操作方法
2010/01/28 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
详解javascript中的事件处理
2015/11/06 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
Node.js API详解之 vm模块用法实例分析
2020/05/27 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
Mac下Supervisor进程监控管理工具的安装与配置
2014/12/16 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
python实现二分类的卡方分箱示例
2019/11/22 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
爱岗敬业演讲稿范文
2014/01/14 职场文书
课堂教学改革实施方案
2014/03/17 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
简单聊聊Golang中defer预计算参数
2022/03/25 Golang