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和C#中获得referer
Nov 14 Javascript
javascript中new关键字详解
Dec 14 Javascript
jquery ajax双击div可直接修改div中的内容
Mar 04 Javascript
Boostrap实现的登录界面实例代码
Oct 09 Javascript
浅谈在js传递参数中含加号(+)的处理方式
Oct 11 Javascript
JavaScript中双向数据绑定详解
May 03 Javascript
详解Angular的8个主要构造块
Jun 20 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
Sep 03 Javascript
js利用递归与promise 按顺序请求数据的方法
Aug 30 Javascript
js实现点击图片在屏幕中间弹出放大效果
Sep 11 Javascript
javascript实现点击星星小游戏
Dec 24 Javascript
javascript的var与let,const之间的区别详解
Feb 18 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 编写的 25个游戏脚本
2009/05/11 PHP
解析php 版获取重定向后的地址(代码)
2013/06/26 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
!DOCTYPE声明对JavaScript的影响分析
2010/04/12 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
2012/03/01 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
Python 序列的方法总结
2016/10/18 Python
Python自动发邮件脚本
2017/03/31 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
运行时异常与一般异常有何异同?
2014/01/05 面试题
文明教师事迹材料
2014/01/16 职场文书
环保小标语
2014/06/13 职场文书
七夕相亲活动策划方案
2014/08/31 职场文书
财产分割协议书范本
2014/11/03 职场文书
长江三峡导游词
2015/01/31 职场文书
消费者投诉书范文
2015/07/02 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
golang生成并解析JSON
2022/04/14 Golang