1. 程式人生 > >【VUE中模板筆記】vue中flexible+padding撐開容器高讓子元素固定比例+echarts模板

【VUE中模板筆記】vue中flexible+padding撐開容器高讓子元素固定比例+echarts模板

1、vue中flexible

2、padding撐開容器高讓子元素固定比例,實現高度自適應。圖片的高度可以根據width自適應,padding也可以,所以做一個盒子用padding撐開高度,裡面的元素width和height都是100%即可

3、echarts模板 

<template>
    <div id="stage">
        <div id="wrap">
            <div id="myChart" ref="MyEcharts"></div>
        </div>
    </div>
</template>


<script>
    import echarts from 'echarts';

    export default {

        data: function () {
            return {}
        },
       mounted(){
         this.init()
       },
        methods:{
            init(){
                var myChart = echarts.init(document.getElementById('myChart'));
                var options = {
                    color: ['#3398DB'],
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {            // 座標軸指示器,座標軸觸發有效
                            type: 'shadow'        // 預設為直線,可選為:'line' | 'shadow'
                        }
                    },
                    grid: {
                        left: '3%',
                        right: '4%',
                        bottom: '3%',
                        containLabel: true
                    },

                    dataset: {
                        // 提供一份資料。
                        source:[
                            {product: 'Matcha Latte', PV: 823, UV: 95.8},
                            {product: 'Milk Tea', PV: 235, UV: 81.4},
                            {product: 'Cheese Cocoa', PV: 1042, UV: 91.2},
                            {product: 'Walnut Brownie', PV: 988, UV: 76.9}
                        ]
                    },
                    xAxis: [
                        {
                            type: 'category',
                            // data : ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
                            axisTick: {
                                alignWithLabel: true
                            }
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value'
                        }
                    ],
                    series: [
                        {
                            name: 'PV',
                            type: 'bar',
                            // barWidth: '60%',
                            // data:[10, 52, 200, 334, 390, 330, 220]
                        },
                        {
                            type:'bar',
                            name: 'UV',
                            // barWidth: '60%',
                        }
                    ]
                };
                myChart.setOption(options);
                window.onresize = function(){
                    myChart.resize()
                }
            }
        }
    }
</script>

<style>
    #stage {
        width: 100%;
        height: 100%;
        max-width: 768px; /*no*/
        margin: 0 auto;
    }

    #wrap {
        height: 0;
        padding-bottom: 56.25%; /* 16:9 相對於寬padding*/
        position: relative;
        width: 100%;
        border: 1px solid #3cff0b;
    }

    #wrap #myChart {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        border: 1px solid #1411ff;
    }
</style>