javascript - 想要使用每 1 秒运行一次的无限循环使用普通 javascript 更改 html 网页中的文本,但是当我加载时网页卡住了

标签 javascript html

我有一个 HTML 片段

和 javascript 文件来处理变化

const slideTitleArr =['financial Services', 'Management Services'];

function slidingTitle() {
    for (let i = 0; i>-1; i++) {
        if (i === slideTitleArr.length) {
            i=0;
        }
        setTimeout(function timer() {
            document.getElementById('sliding-title').innerHTML = slideTitleArr[i];
        }, i*1000);
    } 
}

window.onload =  slidingTitle()
<h1>Trailblazing CRM  for <span id="sliding-title"style="color: white">financial services</span> </h1>

我不知道为什么这行不通。

最佳答案

它崩溃是因为您创建了一个无限循环 (i>-1),它阻止了 setTimeout 运行 (here is useful post on the JS event loop/call stack)。您正在寻找setInterval . setInterval() 将每 n 秒调用一个函数。

const slideTitleArr = ['financial Services', 'Management Services'];
let i = 0;
setInterval(() => {
  i = i >= slideTitleArr.length - 1 ? 0 : i + 1;
  document.getElementById('sliding-title').innerHTML = slideTitleArr[i];
}, 1000);
<h1>Trailblazing CRM for
  <span id="sliding-title">financial services</span>
</h1>

关于javascript - 想要使用每 1 秒运行一次的无限循环使用普通 javascript 更改 html 网页中的文本,但是当我加载时网页卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58230489/

相关文章:

HTML 布局(基本)- CSS 问题

javascript - 如何从一组列表中向下滑动一个列表并单击关闭其他列表?

javascript - 悬停时背景图像不会改变

html - 如何为 li 添加边框包括数字?

html - 不使用边距的两列布局(一列可选)

javascript - 在每秒更新的网页上显示一个 txt 文件

javascript - 将 js 对象的下标渲染为 HTML

javascript - 实时可拖动 div - 位置,排序奇怪的行为

javascript - Facebook 登录按钮导致“ Uncaught Error

html - Firefox 看不到输入文本