当前位置: 首页 > 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.dtcms.com/a/308677.html

相关文章:

  • el-button长按触发事件(含未响应的解决方案)
  • 【AI大模型】披着羊皮的狼--自动化生成越狱提示的系统(ReNeLLM)
  • QtConcurrent::run函数
  • React 项目环境如何安装使用?
  • es的histogram直方图聚合和terms分组聚合
  • pig Cloud中分布式锁的使用(setIfAbsent)
  • 扫描发票自动录入财务系统怎么做?
  • 定点数 与 浮点数
  • 软件项目中如何编写项目计划书?指南
  • ros2 tf2详解
  • 基于 C 语言视角:流程图中分支与循环结构的深度解析
  • 敏捷开发轻量级看板工具:提升效率的秘密武器
  • 【02】大恒相机SDK C#开发 —— 初始化相机,采集第一帧图像
  • 基于单片机智能油烟机设计/厨房排烟系统设计
  • mac fusion win11虚拟机 不能正确识别bitlocker USB
  • wordpress配置文章详情页自动生成目录点击定位
  • 计算机存储正数,负数
  • Flask Bootstrap 后台权限管理方案
  • 【工具变量】企业数字化转型:数字化无形资产占比测算(2007-2024年)
  • 【算法基础课-算法模板2】数据结构
  • kmp复习,需要多看多练
  • 类和对象(前章)
  • 藏语识别技术在媒资行业的应用案例剖析
  • SELinux 核心概念与访问控制机制解析
  • Windows 10 WSLUbuntu 22.04 安装并迁移到 F 盘
  • MyBatis入门---环境搭建
  • 基于SpringBoot和SpringAI框架实践
  • 案例开发 - 日程管理 - 第四期
  • 鸿蒙开发交叉类型
  • 《零基础入门AI:传统机器学习核心算法(决策树、随机森林与线性回归)》