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中方便父组件访问
posted @   懒惰ing  阅读(1134)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示