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.boxy对话框插件代码
Oct 26 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
Sep 05 Javascript
jQuery对下拉框,单选框,多选框的操作
Feb 21 Javascript
探寻Javascript执行效率问题
Nov 12 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
Oct 16 Javascript
Javascript中的return作用及javascript return关键字用法详解
Nov 05 Javascript
jQuery实现复选框的全选和反选
Feb 02 Javascript
详解webpack进阶之插件篇
Jul 06 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
Aug 20 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
Dec 05 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
Mar 21 Javascript
javascript for循环性能测试示例
Aug 07 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
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
php数组键值用法实例分析
2015/02/27 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
JsRender for object语法简介
2014/10/31 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
JS根据json数组多个字段排序及json数组常用操作
2019/06/06 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
详解如何使用React Hooks请求数据并渲染
2020/10/18 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
python实现录音小程序
2020/10/26 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
python的help函数如何使用
2020/06/11 Python
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
护士长竞聘演讲稿
2014/04/30 职场文书
保送生自荐信范文
2015/03/26 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
汽车车尾标语大全
2015/08/11 职场文书
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python
pt-archiver 主键自增
2022/04/26 MySQL