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

  • 实现效果:
  • 需求:最近接到这么一个需求,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智能名片链动2+1模式S2B2C商城小程序的实践研究
大数据·人工智能·小程序
菩提小狗2 分钟前
Sqlmap双击运行脚本,双击直接打开。
前端·笔记·安全·web安全
yugi9878383 分钟前
用于图像分类的EMAP:概念、实现与工具支持
人工智能·计算机视觉·分类
aigcapi6 分钟前
AI搜索排名提升:GEO优化如何成为企业增长新引擎
人工智能
彼岸花开了吗12 分钟前
构建AI智能体:八十、SVD知识整理与降维:从数据混沌到语义秩序的智能转换
人工智能·python·llm
MM_MS12 分钟前
Halcon图像锐化和图像增强、窗口的相关算子
大数据·图像处理·人工智能·opencv·算法·计算机视觉·视觉检测
前端工作日常13 分钟前
我学习到的AG-UI的概念
前端
韩师傅18 分钟前
前端开发消亡史:AI也无法掩盖没有设计创造力的真相
前端·人工智能·后端
AI大佬的小弟20 分钟前
【小白第一课】大模型基础知识(1)---大模型到底是啥?
人工智能·自然语言处理·开源·大模型基础·大模型分类·什么是大模型·国内外主流大模型
lambo mercy27 分钟前
无监督学习
人工智能·深度学习