echarts的屏幕自适应

1. 使用window.onresize来实现

       

// myChart为echarts初始化的结果,chartDom为装图表的div容器
// 如: myChart = echarts.init(document.getElementById('chartDom'));
// 这个方法不论是写在onMounnted里面还是外面都可以

window.addEventListener("resize", () => {
    myChart.resize();
});
//或
window.onresize = function () {
    myChart.resize();
};

2. 通过ResizeObserver的实例对象来实现(推荐)

// myChart这个参数是echarts的实例

function chartResize(myChart: any) {
        let chartObserver = new ResizeObserver(() => {
            myChart.resize();
        });
        chartObserver.observe(myChart.getDom());
    }
chartResize(myChart)

如果有多个页面的图表都需要使用这个函数, 则可将它放在vuex或者pinia中

// pinia中
export const ChartAdaptive = defineStore('chart',()=>{
  const chartResize = (myChart:any)=>{
    const chartObserver = new ResizeObserver(()=>{
      myChart.resize()
    });
    chartObserver.observe(myChart.getDom())
  }
  return{
    chartResize
  }
})

// 要用的vue文件中
import { ChartAdaptive } from '@/stores'
let s_chartAdaptive = ChartAdaptive();

onMounted(()=>{
    myChart = echarts.init(document.getElementById('chartDom'));
    s_chartAdaptive.chartResize(myChart);
    ......
})

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值