vue柱狀進(jìn)度條圖像的完美實現(xiàn)方案
前言
本文是對bar進(jìn)度條實現(xiàn)的2種方案進(jìn)行分享,第一種是很簡單,純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設(shè)置透明度0.14
}
},
barGap: '-100%',
z: 0,
barWidth: 25,
data: [100, 100, 100]
}
]
}
}
}
}
</script>
代碼地址
代碼已經(jīng)上傳github,地址是: https://github.com/confidence68/bar_precent_css
總結(jié)
以上所述是小編給大家介紹的vue柱狀進(jìn)度條圖像的完美實現(xiàn)方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Vue3+Canvas實現(xiàn)坦克大戰(zhàn)游戲(二)
本文主要給大家講解一下子彈擊中物體、物體銷毀、敵方坦克構(gòu)建生成、運動算法、爆炸效果、以及障礙物的生成,感興趣的小伙伴可以了解一下2022-03-03
使用Vue的slot插槽分發(fā)父組件內(nèi)容實現(xiàn)高度復(fù)用、更加靈活的組件(推薦)
這篇文章主要介紹了使用Vue的slot插槽分發(fā)父組件內(nèi)容實現(xiàn)高度復(fù)用、更加靈活的組件 ,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-05-05

