You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

文本数组打字机动画仅播放数条后停止,求排查提示

打字机脚本无法遍历所有数组条目的问题排查与修复

问题概述

编写的打字机脚本仅能播放数组中前几条单词,之后便停止,无法遍历完dataText数组内的所有内容。

核心问题

问题出在StartTextAnimation函数的判断逻辑上:

// 错误的判断条件
if (i < dataText[i].length) {

这里错误地将数组索引值i与当前索引对应单词的长度做比较。当索引i的数值超过当前单词的长度时,条件不成立,函数会直接跳过后续执行,导致脚本停止。例如:

  • 当i=9时,对应单词"Fliesen"长度为7,9>7,条件不满足,动画终止。

修复代码

将判断条件改为检查索引i是否在数组的有效范围内(即小于数组的总长度):

function StartTextAnimation(i) {
    if (typeof dataText[i] == 'undefined') {
        setTimeout(function() {
            StartTextAnimation(0);
        }, 0);
    }
    // 修正:检查索引是否在数组长度范围内
    if (i < dataText.length) {
        typeWriter(dataText[i], 0, function() {
            StartTextAnimation(i + 1);
        });
    }
}

可选优化方向

  • 添加字符删除动画:在切换到下一个单词前,先逐字符删除当前显示的单词,提升过渡自然度;
  • 提取时间常量:将setTimeout的延迟时间(100ms、1000ms)定义为全局常量,便于统一调整打字/停留速度;
  • 增加错误处理:针对数组为空的情况添加提示或默认行为。

内容的提问来源于stack exchange,提问作者jackennils

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 07:00:58