在setInterval的几分钟后文本开始闪烁javascript
我正在使用setInterval函数帮助每隔10秒更改一次文本。 它工作得很好,但5-6分钟后,它开始以毫秒为单位改变它的文本,所以它看起来像闪烁。在setInterval的几分钟后文本开始闪烁javascript
我的代码是:
var wordArray = ["TEXT1","TEXT2","TEXT3"];
function typingEffect() {
var rand = Math.floor(Math.random()*3);
$("#big-bob h5").text(wordArray[rand]);
$("#big-bob h5").addClass("animate");
setInterval(typingEffect,10000);
}
typingEffect();
你正在创建一个新的时间间隔,每次你执行typingEffect()
功能...
var wordArray = ["TEXT1","TEXT2","TEXT3"];
function typingEffect() {
var rand = Math.floor(Math.random()*3);
$("#big-bob h5").text(wordArray[rand]).addClass("animate");
}
setInterval(typingEffect,10000);
typingEffect(); // This last line is only needed if you want to execute the function
// when page loads (otherwise, first execution will be after the
// first 10 seconds)
要做到这一点在你的方式,你应该使用setTimeout()
。 ...
var wordArray = ["TEXT1","TEXT2","TEXT3"];
function typingEffect() {
var rand = Math.floor(Math.random()*3);
$("#big-bob h5").text(wordArray[rand]).addClass("animate");
setTimeout(typingEffect,10000);
}
typingEffect();
嗨A. Lglesias非常感谢。这工作得很好。但我需要更多信息。在这个函数中的时间是10秒,在动画(css)上它也是10秒,但是两者不匹配。 – VikashSDNT
是的,定时器可能会因CPU负载等而受到延迟(Web浏览器与所有应用程序一样,轮换CPU时间段,并且根据负载情况,他们必须等待的时间会有所不同)。你应该设置一个大于css动画的'setTimeout'间隔持续时间,以确保css动画有足够的时间在下一个'setInterval'迭代到来之前完成。可能1秒的差异应该足够了,但请尝试不同的值以根据您的需求进行调整。 –
嗨A. Lglesias,再次感谢。现在我又遇到了问题。其实我不想随机的字符串。我想通过数组wordArray一步一步的字符串。请帮帮我。 – VikashSDNT
发生这种情况的原因是每次添加新的setInterval函数离子被称为。请使用clearInterterval或将setInterval更改为setTimeout。注意区别:https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Timers – jeff