效果图

体验链接:https://livequeen.top/deepseekshow 

思路

返回的文本,用一个元素a临时存储,将a存储的结果,一个一个字符定时添加到显示的文本b上即可。

注意:因为for循环不会等定时函数,所以每下一个字符,要加时1轮,例如:定时(100*i)ms

实现

    // 展示的文本
    var text = ''   

    /**
     * 模拟AI机器人打字效果
     * @param content 返回的全部文本
     */
    chatAI (content) {

      // 获取返回结果
      let data = content
      // 临时储存结果(一个一个字符叠加)
      let dataTemp = ''

      // for循环一个个字符执行
      for (let i = 0; i < data.length; i++) {
          // 定时(100*i)ms,因为for循环不会等定时函数,所以每下一个字符,要加时1轮
          setTimeout(() => {
            
            // 更新临时字符集
            dataTemp = dataTemp + data[i]
            
            // 判断是否是最后一个字符,用于模拟打字效果结尾'_',并赋值给展示的文本
            if (i === data.length - 1) {
              this.text = dataTemp
            } else {
              this.text = dataTemp + '_'
            }
          }, 100 * i)
        }
      }
    }

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐