首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想用普通的javascript更改html网页中的文本,使用每1秒运行一次的无限循环,但网页在加载时卡住了

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

Stack Overflow用户
提问于 2019-10-04 13:35:20
回答 1查看 41关注 0票数 2

我有一个HTML代码片段

和javascript文件来处理更改。

代码语言: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()
代码语言:javascript
复制
<h1>Trailblazing CRM  for <span id="sliding-title"style="color: white">financial services</span> </h1>

我不知道为什么这不管用。

EN

Stack Overflow用户

发布于 2019-10-04 13:46:20

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

代码语言:javascript
复制
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);
代码语言:javascript
复制
<h1>Trailblazing CRM for
  <span id="sliding-title">financial services</span>
</h1>

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58230489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档