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

vue-seamless-scroll 与 echarts 三联水球图循环滚动的渲染难题-出现短暂空白

工作中要实现下述一个循环滚动的三联水滴图,毫无疑问想到vue-seamless-scroll插件。

注意:不能单独写三个组件了,而是在一个组件中实现。

如何实现看这个echarts三联水球图_echarts水球图-CSDN博客

本文主要解决使用vue-seamless-scroll插件过程中嵌入echarts三联水球图后循环滚动中出现短暂空白,导致无法正常渲染的问题。

我当时使用了this.$nextTick不生效,查阅文档必须使用echart渲染放到setTimeout宏任务

this.$nextTick 可能无法捕获(因为它只等待 Vue 同步的 DOM 更新)

官方文档:09 - echart图表无缝滚动 | vue-seamless-scroll--09 - echart图表无缝滚动

仔细解释下原因:

vue-seamless-scroll 这类滚动组件通常会在内部复制一份原始 DOM 结构(用于实现无缝滚动的视觉效果),这个复制过程是同步执行的。如果在组件还没完成复制时就执行 ECharts 渲染,可能只能获取到初始的 DOM 元素,而无法获取到复制后的元素,导致部分图表无法正常渲染。

通过 setTimeout(() => {}, 0) 将 ECharts 渲染逻辑放入宏任务队列:

  1. 会先让主线程完成当前同步代码(包括 vue-seamless-scroll 的 DOM 复制工作)
  2. 等待同步任务完成后,再执行宏任务中的 ECharts 渲染逻辑
  3. 此时 document.querySelectorAll('.li-item') 才能获取到包括复制后在内的所有元素

这样就能确保 ECharts 初始化时,所有需要渲染图表的 DOM 元素(包括组件复制产生的元素)都已存在,避免因 DOM 未准备好而导致的渲染问题。

http://www.lryc.cn/news/606103.html

相关文章:

  • iOS高级开发工程师面试——其他
  • Linux大页内存导致服务内存不足
  • Java——方法
  • 基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析实践技术应用
  • EEG手工特征提取总结
  • RagFlow本地源码部署(非Docker)
  • 现在有哪些广泛使用的时序数据库?
  • AWS高级解决方案架构师黄海波:GenAI 时代非结构化数据处理的实践与趋势洞察
  • Linux性能检测与调优
  • 解决SparkSQL创建出来的数据库hive中无法识别的问题
  • 切割液性能智能调控系统与晶圆 TTV 预测模型的协同构建
  • toFixed()方法的报错注意
  • Python 程序设计讲义(47):组合数据类型——字典类型:创建字典
  • MySQL常用函数总结
  • 2025年7月最新一区SCI-基尔霍夫定律优化算法Kirchhoff’s law algorithm-附Matlab免费代码
  • [硬件电路-109]:模拟电路 - 自激振荡器的原理,一种把直流能量转换成交流信号的装置!
  • 专题:2025半导体行业研究报告:从AI芯片到封测突围的生死局|附40+份报告PDF、数据汇总下载
  • Apifox 7 月更新|通过 AI 命名参数及检测接口规范、在线文档支持自定义 CSS 和 JavaScript、鉴权能力升级
  • 鸿蒙拉起系统定位和app授权定位
  • 光伏热斑误检率↓79%!陌讯多模态融合算法在智慧能源的落地优化
  • 当文档包含图文混排表格时,如何结合大模型(如DeepSeek-VL)和OCR提取数据
  • 一次 web 请求响应中,通常那个部分最耗时?
  • Flutter module 是如何被原生 Android 项目通过 Gradle 引入的
  • Flutter Chen Generator - yaml配置使用
  • 原生安卓与flutter混编的实现
  • 是否需要买一个fpga开发板?
  • 嵌入式硬件学习(十)—— LED驱动+杂项设备驱动
  • 【Unity】实现小地图
  • TDengine 中 TDgp 中添加算法模型(异常检测)
  • 【大模型理论篇】跨语言AdaCOT