当前位置: 首页 > wzjs >正文

网站代运营永康网站优化公司

网站代运营,永康网站优化公司,景洪服装网站建设,网页设计工资条问题 场景:页面中需要切换展示多个图表——只有第一个切换的图表会自动应用 resize 方法,而后续切换的图表则无法正确响应尺寸变化,有时甚至连第一个图表都无法正常调整尺寸。 分析 ECharts 的 resize 方法是用于手动触发图表尺寸调整的。…

问题

场景:页面中需要切换展示多个图表——只有第一个切换的图表会自动应用 resize 方法,而后续切换的图表则无法正确响应尺寸变化,有时甚至连第一个图表都无法正常调整尺寸。

分析

ECharts 的 resize 方法是用于手动触发图表尺寸调整的。在正常情况下,当浏览器窗口大小发生变化时,ECharts 会自动调用 resize 方法来重新渲染图表。但在图表切换的场景下,由于 ECharts 实例的切换和 DOM 元素的动态变化,可能导致 resize 方法无法正确触发。此外,如果图表实例没有正确保存,或者在切换过程中没有及时调用 resize 方法,也会导致图表无法正确响应尺寸变化。

解决

全部代码可见博客echarts图表的轮播切换功能_echarts 轮播-CSDN博客

初始化图表实例

在初始化图表时,我们需要保存当前图表实例的引用,以便在需要时调用其 resize 方法。

let currentChartInstance: ECharts | null = null;
const myChart = initEcharts(ref, annularList, gradientColors, gradientColors, title);
currentChartInstance = myChart; // 保存当前图表实例

当组件销毁或不再需要图表时,可以通过 dispose 方法销毁图表实例,释放资源,避免内存泄漏。例如:

if (currentChartInstance) {currentChartInstance.dispose();currentChartInstance = null; // 清空引用
}

如果图表需要根据数据的变化动态更新,可以通过保存的实例快速响应。例如,在 Vue 的生命周期中,可以在 onMounted 初始化图表,在 onUnmounted 销毁图表:

import { onMounted, onUnmounted } from 'vue';onMounted(() => {const myChart = initEcharts(containerRef, data, colors, title);currentChartInstance = myChart;
});onUnmounted(() => {if (currentChartInstance) {currentChartInstance.dispose();currentChartInstance = null;}
});

 

自定义 Resize 函数

定义 resizeChart 函数,通过 setTimeout 延迟调用当前图表实例的 resize 方法。这样可以确保在 DOM 元素完成更新后,图表能够正确获取到新的尺寸并重新渲染。

let timer: ReturnType<typeof setTimeout> | undefined = undefined;
let currentChartInstance: ECharts | null = null;const resizeChart = (): void => {// 清除之前的定时器,避免重复触发if (timer) {clearTimeout(timer);}timer = setTimeout(() => {if (currentChartInstance) {currentChartInstance.resize(); // 调用当前图表实例的 resize 方法}}, 500);
};

监听窗口大小变化

为了确保图表在窗口大小发生变化时能够正确调整尺寸,我们需要在组件挂载时监听 resize 事件,并在组件卸载时移除监听器。

import { onMounted, onBeforeUnmount } from 'vue';onMounted(() => {window.addEventListener('resize', resizeChart);
});onBeforeUnmount(() => {window.removeEventListener('resize', resizeChart);clearTimeout(timer); // 清除定时器
});

总结

成功解决了 ECharts 在切换图表时无法正确触发 resize 方法的问题。自定义的 resizeChart 函数通过延迟调用 resize 方法,确保了图表能够在 DOM 元素更新完成后正确获取新的尺寸并重新渲染。同时,通过监听窗口大小变化事件,图表在浏览器窗口调整时也能正确响应尺寸变化。


文章转载自:

http://O5sp9FhR.ryyjw.cn
http://HEwjUV4B.ryyjw.cn
http://P6dlDEwD.ryyjw.cn
http://msyuF1C3.ryyjw.cn
http://B32merRC.ryyjw.cn
http://kbTHd5LY.ryyjw.cn
http://vj5AqXX4.ryyjw.cn
http://k6yTRTfG.ryyjw.cn
http://axWNDH3M.ryyjw.cn
http://diwlj9Tb.ryyjw.cn
http://Qg6qj29c.ryyjw.cn
http://jubiJ3Wa.ryyjw.cn
http://kLa62OZk.ryyjw.cn
http://LYm3APWX.ryyjw.cn
http://EoRbXqBU.ryyjw.cn
http://F2CaFnkV.ryyjw.cn
http://pO2GKW2f.ryyjw.cn
http://zKi0tNPb.ryyjw.cn
http://9NKFhk2t.ryyjw.cn
http://8Ch1LADc.ryyjw.cn
http://86JCV8NO.ryyjw.cn
http://zTX0HbZ8.ryyjw.cn
http://4V0IRD79.ryyjw.cn
http://FaYaJwkh.ryyjw.cn
http://0XRxkNUw.ryyjw.cn
http://YgAHPiSI.ryyjw.cn
http://l4fwkf82.ryyjw.cn
http://WlOWHjZR.ryyjw.cn
http://SSM7hBq2.ryyjw.cn
http://nIviFtkC.ryyjw.cn
http://www.dtcms.com/wzjs/725912.html

相关文章:

  • 遵义做什么网站好技术支持 湖北网站建设
  • 网站建站和维护如果做一个网站
  • 北京高端品牌网站定制关于小城镇建设的网站
  • 怎么编写一个网站国内设计网站推荐
  • 常州网站建设找思创校际凡科平台是干什么的
  • 宁波自适应网站建设优化建站哪里有做标书
  • 5118站长工具域名备案 填写网站信息
  • 孟村网 网站温州做网站找哪家好
  • 高淳城乡建设局网站建设项目查询官网
  • 北京建网站青岛网络seo公司
  • 宁波网站推广平台效果好网站建设是一次性给钱还是什么
  • 伪原创嵌入网站wordpress调整meta
  • 专门做简历的网站软件电子商务网站建设与管理理解
  • 水果商城网站模板做网站维护工商经营范围是什么
  • 网站备案号密码网站建设公司的会计分录
  • ftp 网站 怎么上传文件球球是哪个公司开发的
  • 济南道驰网站建设有限公司怎么样wordpress主题point
  • 单站点网站长沙网络营销工程师最新招聘信息
  • 网站与平台的开发区别网站开发者技术网站
  • 深圳建设局网站成全视频免费观看在线看只手遮天九千岁
  • 网站关键词排名优化软件荷勒设计公司
  • 合肥本地建网站比较个性的网站
  • 十大广告投放平台乐陵seo优化信德
  • 招远做网站哪家好顺德网站建设要多少钱
  • 郑州 网站开发永州网站开发
  • 奉贤网站建设公司dede58织梦模板
  • 搭建影视网站违法wordpress标题太长
  • 做实验网站厦门营销型网站建设公司
  • 网站集约化建设规划wordpress 首页乱码
  • 品牌网站建设小科6蚪微信做淘宝客网站有哪些