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 相关文章推荐
初窥JQuery(二) 事件机制(1)
Nov 25 Javascript
javascript的原生方法获取数组中的最大(最小)值
Dec 19 Javascript
window.location.href中url中数据量太大时的解决方法
Dec 23 Javascript
JavaScript通过select动态更换图片的方法
Mar 23 Javascript
jQuery选择器用法实例详解
Dec 17 Javascript
Vue结合原生js实现自定义组件自动生成示例
Jan 21 Javascript
JavaScript高阶函数_动力节点Java学院整理
Jun 28 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
Aug 31 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
Sep 02 Javascript
vue结合axios与后端进行ajax交互的方法
Jul 06 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
Sep 10 Javascript
JavaScript对象原型链原理详解
Feb 05 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
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
js Html结构转字符串形式显示代码
2011/11/15 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
2017/03/10 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
React中使用async validator进行表单验证的实例代码
2018/08/17 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
js+canvas实现纸牌游戏
2020/03/16 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
pycharm 安装JPype的教程
2019/08/08 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
金融管理专业毕业生求职信
2014/03/12 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
小学先进集体事迹材料
2014/05/31 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
离婚协议书范文2016
2016/03/18 职场文书
使用Apache Camel表达REST服务的方法
2022/06/10 Servers