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 学习笔记(九)call和apply方法
Jan 11 Javascript
JavaScript继承方式实例
Oct 29 Javascript
jquery监控数据是否变化(修正版)
Apr 12 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
May 27 Javascript
推荐一个封装好的getElementsByClassName方法
Dec 02 Javascript
JavaScript实现点击单元格改变背景色的方法
Feb 12 Javascript
JQuery ZTree使用方法详解
Jan 07 Javascript
详解使用nvm管理多版本node的方法
Aug 30 Javascript
微信小程序手机号码验证功能的实例代码
Aug 28 Javascript
Vue点击切换颜色的方法
Sep 13 Javascript
手写Vue弹窗Modal的实现代码
Sep 11 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
Oct 28 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
截获网站title标签之家内容的例子
2006/10/09 PHP
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
PHP CURL获取返回值的方法
2014/05/04 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
2014/04/30 Javascript
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
基于Vue 服务端Cookies删除的问题
2018/09/21 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
python发送HTTP请求的方法小结
2015/07/08 Python
python 图片去噪的方法示例
2019/07/09 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
总经理司机岗位职责
2014/02/06 职场文书
超市店庆活动方案
2014/08/31 职场文书
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python