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

  • 实现效果:
  • 需求:最近接到这么一个需求,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)
相关推荐
程序员夏末几秒前
【AI Agent基础 | 第六篇】LLM多厂商接入:区分provider、protocol、base_url、adapter
人工智能·agent·ai agent
nvvas2 分钟前
Could not resolve “@intlify/vue-devtools‘ node modules/. pnpm/vue-118n@9. 14
前端·javascript·vue.js
AI技术增长2 分钟前
第 2 集:环境搭建:安装 Claude Code、GitHub CLI 与项目初始化
人工智能·自动化·github
老哥不老2 分钟前
ChatGPT Image2 实测全解析:AI图像生成,从“能看”到“能用”的质变
人工智能·gpt
qyhua5 分钟前
AgentCode 深度技术解析:极简架构下的 AI 编程代理设计哲学
人工智能·架构
逻辑君5 分钟前
认知神经科学研究报告【20260016】
人工智能
快乐非自愿7 分钟前
SpringAI入门指南
大数据·人工智能·spring
新知图书7 分钟前
通过阿里云百炼平台调用DeepSeek大模型
人工智能·阿里云·云计算·langchian
TokenByte-AI导航小贴士9 分钟前
Claude 4.5 Sonnet / Opus / Haiku:新手选型指南
人工智能·ai·云计算·aigc·claude·aws
yqcoder10 分钟前
[特殊字符] Vue 3 组件通信全指南:从基础到进阶
前端·javascript·vue.js