echarts 随屏幕大小改变大小(resize)
echarts 随屏幕大小改变大小(resize)
- echarts多个图表大小随屏幕的大小改变自适应,Echarts 多图表自适应窗口大小,echarts随页面大小变化而变化;
页面单个 echarts
- 当页面只有一个图表的时候直接用
 window.onresize = myChart.resize
示例
可直接复制粘贴
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>第一个 ECharts 实例</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/5.0.1/echarts.min.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 100%;height:500px;"></div>
    <script type="text/javascript">
        var myChart = echarts.init(document.getElementById('main'));
        // 指定图表的配置项和数据
        var option = { title: { text: 'ECharts 入门示例' }, tooltip: {}, legend: { data: ['销量'] }, xAxis: { data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }] };
        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
        window.onresize = myChart.resize;
    </script>
</body>
</html>
- 宽度需要设置为百分比,高度自适应亦然。
页面有多个 echarts
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>第一个 ECharts 实例</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/5.0.1/echarts.min.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 100%;height:500px;"></div>
    <div id="mainA" style="width: 100%;height:500px;"></div>
    <div id="mainB" style="width: 100%;height:500px;"></div>
    <script type="text/javascript">
        var myChart = echarts.init(document.getElementById('main'));
        var myChartA = echarts.init(document.getElementById('mainA'));
        var myChartB = echarts.init(document.getElementById('mainB'));
        // 指定图表的配置项和数据
        var option = { title: { text: 'ECharts 入门示例' }, tooltip: {}, legend: { data: ['销量'] }, xAxis: { data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }] };
        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
        myChartA.setOption(option);
        myChartB.setOption(option);
        window.addEventListener("resize", function () {
            myChart.resize();
            myChartA.resize();
            myChartB.resize();
        });
        /* 或者
        *    window.onresize = function(){
        *       myChart.resize();
        *       myChartA.resize();
        *       myChartB.resize();
        *   }
        /
    </script>
</body>
</html>
vue 组件化开发
- 如果把绑定放在父页面的 mounted 里面会导致找不到子组件的 dom元素,导致自适应失效
- this.$nextTick(() => {})
- 用 nextTick 函数,等dom全部加载好再绑定
- 然后可以在组件上绑定 ref,将子组件的echarts绑定到data中方便父组件访问
本文来自博客园,作者:懒惰ing,转载请注明原文链接:https://www.cnblogs.com/landuo629/p/14340533.html

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号