【问题标题】:Animate text with array用数组动画文本
【发布时间】:2022-01-14 23:44:47
【问题描述】:

我正在尝试使用具有时间间隔的数组使用 javascript 为文本设置动画,例如 t te tex text,我希望它从 0 循环到 21 并返回,我不完全确定该怎么做。非常感谢任何帮助!

【问题讨论】:

  • 欢迎来到 SO。正如现在所写,您的问题尚不清楚。请访问help center 并遵循how to ask 上的指南。这里的问题应该具体而简洁,并且应该显示出明确的研究努力和解决问题的尝试。
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: javascript arrays animation


【解决方案1】:

一般概念:
您需要使用下一个值更新每个刻度的字符串输出,直到完整的字符串可见。滴答间隔定义动画的速度。

以下可能的实现之一:

// Wait [ms] milliseconds
const Delay = ms => new Promise(r => setTimeout(r, ms));

// Main function
const main = async () => {
  const p = document.querySelector('p');
  // String you wanna animate
  const targetText = 'Hello there!';
  // Tick interval
  const tick = 60;
  
  // Iterating through string
  for (let i = 1; i <= targetText.length; i++) {
    // Set new value 
    p.innerHTML = ('&nbsp;'.repeat(targetText.length - i) + targetText.slice(-i));
    // Wait for a next tick
    await Delay(tick);
  }
}

main();
p {
  font-family: Monospace;
}
&lt;p&gt;&lt;/p&gt;

这里是:
&amp;nbsp; - 在.innerHTML() 内部可以看到空格; tick - 动画帧之间的间隔(以毫秒为单位);

参考:.slice().repeat()

【讨论】:

    猜你喜欢
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多