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

如何为文本数组单个字符添加闪烁效果并随用户输入自动跳转

实现方案

核心修改点

  • 新增currentIndex变量记录当前待输入的字符下标,初始值为0
  • 初始化渲染字符后,自动给第一个字符添加闪烁样式
  • 输入事件中仅判断当前待输入字符是否匹配,匹配成功则自动将闪烁效果跳转到下一个字符,支持输入回退时同步回退闪烁位置
  • 仅当前待输入字符持有闪烁类,已输入正确的字符可自行扩展样式标识

完整可运行代码

HTML

<p id="me"></p>
<input id="input" type="text" autofocus />

CSS

.blink-bg {
  text-align: center;
  color: #fff;
  display: inline-block;
  border-radius: 3px;
  animation: blinkingBackground 1s infinite;
}
/* 可选:已输入正确的字符样式,不需要可以删除 */
.correct {
  color: #2ecc71;
}

@keyframes blinkingBackground {
  from { background-color: #f1ebeb; }
  to { background-color: #080808; }
}

JavaScript

let displayElem = document.getElementById("me");
const inputElem = document.getElementById("input");
const text = "Hey It's bad day, not a bad life,you'll be okay...!"
let currentIndex = 0; // 记录当前待输入的字符下标
const charSpans = []; // 存储所有字符的span元素,方便后续操作

// 初始化渲染所有字符
text.split('').forEach(char => {
  const chrspan = document.createElement('span')
  chrspan.innerText = char;
  charSpans.push(chrspan);
  displayElem.appendChild(chrspan);
});
// 初始给第一个字符加闪烁效果
charSpans[currentIndex].classList.add('blink-bg');

inputElem.addEventListener('input', () => {
  const inputVal = inputElem.value;
  // 处理用户删除输入的情况,回退闪烁位置
  if (inputVal.length < currentIndex) {
    charSpans[currentIndex].classList.remove('blink-bg');
    // 不需要正确样式可以删除下面这行
    charSpans[inputVal.length].classList.remove('correct');
    currentIndex = inputVal.length;
    charSpans[currentIndex].classList.add('blink-bg');
    return;
  }
  // 校验当前待输入的字符是否匹配
  const currentTargetChar = charSpans[currentIndex].innerText;
  const currentInputChar = inputVal[currentIndex];
  if (currentInputChar === currentTargetChar) {
    // 输入正确,跳转下一个
    charSpans[currentIndex].classList.remove('blink-bg');
    // 不需要正确样式可以删除下面这行
    charSpans[currentIndex].classList.add('correct');
    currentIndex++;
    // 还有剩余字符就给下一个加闪烁
    if (currentIndex < charSpans.length) {
      charSpans[currentIndex].classList.add('blink-bg');
    }
  }
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:36:08