vue柱狀進度條圖像的完美實現(xiàn)方案
前言
本文是對bar進度條實現(xiàn)的2種方案進行分享,第一種是很簡單,純css的實現(xiàn),第二種是echart的實現(xiàn)。
css的實現(xiàn)
css實現(xiàn)很簡單。代碼如下:
<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>
效果如下
echart實現(xiàn)
<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柱狀進度條圖像的完美實現(xiàn)方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
Vue3+Canvas實現(xiàn)坦克大戰(zhàn)游戲(二)
本文主要給大家講解一下子彈擊中物體、物體銷毀、敵方坦克構建生成、運動算法、爆炸效果、以及障礙物的生成,感興趣的小伙伴可以了解一下2022-03-03使用Vue的slot插槽分發(fā)父組件內容實現(xiàn)高度復用、更加靈活的組件(推薦)
這篇文章主要介紹了使用Vue的slot插槽分發(fā)父組件內容實現(xiàn)高度復用、更加靈活的組件 ,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-05-05