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中根据属性或属性值获得元素(6种情况获取方法)
Jan 17 Javascript
浅谈关于JavaScript的语言特性分析
Apr 11 Javascript
JavaScript对内存分配及管理机制详细解析
Nov 11 Javascript
javascript实现简单的Map示例介绍
Dec 23 Javascript
自己实现ajax封装示例分享
Apr 01 Javascript
删除javascript中注释语句的正则表达式
Jun 11 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
Jun 16 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
Sep 03 Javascript
简单谈谈json跨域
Mar 13 Javascript
JQuery控制DIV的选取实现方法
Sep 18 Javascript
Angular 4.x中表单Reactive Forms详解
Apr 25 Javascript
前端JavaScript大管家 package.json
Nov 02 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后台实现微信小程序登录
2018/08/03 PHP
js用图作提交按钮或超连接
2008/03/26 Javascript
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
关于不同页面之间实现参数传递的几种方式讨论
2017/02/13 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
js编写简易的计算器
2020/07/29 Javascript
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
通过实例学习Python Excel操作
2020/01/06 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
python动态规划算法实例详解
2020/11/22 Python
Python datetime模块的使用示例
2021/02/02 Python
军训自我鉴定
2014/01/22 职场文书
物业经理自我鉴定
2014/03/03 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
2014年组织部工作总结
2014/11/14 职场文书
博士导师推荐信
2015/03/25 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
校园安全教育心得体会
2016/01/15 职场文书
XX部保密工作制度范本
2019/08/27 职场文书
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技