需求:实现一个类似打印的效果(文字一个字一个字的输出)

  • 实现效果:
  • 需求:最近接到这么一个需求,ai机器人回复的问题,后端是通过websocket每隔一段事件返回数据,前端拿到数据后直接渲染,现在需要做到一个效果,后端返回的结果前端需要一个一个文字的输出
  • 解决方法:通过setTimeout和递归的方法实现,代码也不难,小编封装的一个函数,方便使用,详细说明在如下代码中
  • 源码:
javascript 复制代码
// 全局下
timer = null
wordIndex = 0
/*
    打印文字
    参数1:dom对象
    参数2:需要打印的字符串
    参数3:延时时长
*/
writing(dom, wordString, delay) {
    // wordIndex标记文字索引值,
    if (wordIndex < wordString.length) { // 如果索引值比文字长度小,继续执行代码
        clearTimeout(timer) // 为了保证每次时间间隔一致,需要清楚时间器
        // 向dom中追加文字,之后索引值+1
        dom.innerText += wordString[wordIndex++]
        // 定时器
        timer = setTimeout(() => {
            // 递归执行该函数
            this.writing(dom, wordString, delay)
        }, delay)
    }
},

// 调用方法
writing('dom标签', '文字字符串', 20)
相关推荐
Jsundoku31 分钟前
第九章 机器学习 -- 模型评估与调优
人工智能·机器学习·模型评估与调优
李航198338 分钟前
DeepSeek AI建模(二)让AI建第一个模型
人工智能·python·计算机视觉·ai·ai编程
二宝哥40 分钟前
03.Spring AI Embedding 实战:从向量化原理到项目落地
人工智能·spring boot·向量·spring ai
Amos_Web42 分钟前
Rspack 源码解析(三十一):HotModuleReplacementPlugin 如何用 hash 比对生成增量更新
前端
涛声依旧-底层原理研究所42 分钟前
Agent 沙箱实现原理:拆解 DeepSeek Harness 的三层沙箱架构与三平台后端
人工智能·架构
推送者44 分钟前
大将怪兽桌宠教程:从一张正脸照到本地透明桌宠的工程化路线
人工智能·大将怪兽桌宠教程
shennv8881 小时前
2026年国内如何开通ChatGPT Plus和Pro?订阅方式、Codex额度及常见问题整理
人工智能·chatgpt
u1301301 小时前
GitHub 热榜项目:日榜(2026-10-25)
人工智能·github
尤水就下1 小时前
🔥说一说在线文档的 Block 架构是如何实现的
前端·javascript·架构
机器学习之心1 小时前
电池SOH估计和RUL预测,五个时间特征 + 基于GPR高斯过程回归的锂电池健康状态估计和剩余寿命预测
人工智能·数据挖掘·回归·锂电池健康状态估计·剩余寿命预测