echarts随着窗口缩放自适应【react】

/** @format */

import React, { useState, useEffect, useRef } from ‘react’;

// 引入Echarts主模块
import echarts from ‘echarts/lib/echarts’;

//引入柱状图
import ‘echarts/lib/chart/bar’;

//引入折线图
import ‘echarts/lib/chart/line’;

//引入饼状图
import ‘echarts/lib/chart/pie’;

//引入提示框和标题组件
import ‘echarts/lib/component/tooltip’;
import ‘echarts/lib/component/title’;
import ‘echarts/lib/component/grid’;
import ‘echarts/lib/component/legend’;
import ‘echarts/lib/component/graphic’;

const CategoryChart = () => {
const boxNumCategory = useRef(null);

useEffect(() => {
const chart = echarts.init(boxNumCategory.current);

const option = {

。。。
};

chart.setOption(option);
var windowWidth =
  window.innerWidth ||
  document.documentElement.clientWidth ||
  document.body.clientWidth;

// 设置Echart容器宽度为窗口宽度
boxNumCategory.current.style.width = `${windowWidth / 2.8}px`;

// 调用Echart的resize方法
chart.resize();

}, []);
useEffect(() => {
const chart = echarts.init(boxNumCategory.current);

// 初始化Echart图表
chart.setOption({
  // Echart图表配置
});

// 监听窗口大小变化事件
window.addEventListener('resize', () => {
  // 重新设置Echart容器的宽度和高度
  boxNumCategory.current.style.width = '100%';
  //   boxNumPie.current.style.height = '100%';

  // 调用Echart的resize方法
  chart.resize();
});

return () => {
  // 移除窗口大小变化事件监听
  window.removeEventListener('resize');
};

}, []);
return (

  <div
    ref={boxNumCategory}
    style={{
      width: '588px',
      height: '290px',
      background: '#FFFFFF',
      boxShadow: '0px 2px 4px 0px rgba(0,0,0,0.05)',
      borderRadius: '4px',
      opacity: 1,
    }}
    className="DashboardChart-chart"
  ></div>

);
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值