我想通过交替每个其他字符的颜色来动画一些文本。我的代码尽可能以单向的方式工作,但setTimeout
不会再次调用它来交替文本颜色。为什么这个全局计数器变量不适用于setTimeout?
这个问题似乎是我用一个全局变量作为计数器,这可能是一个我忽略的简单问题。
任何想法?这里是我的javascript代码:
var num = 0;
function animateText(){
var str = "";
var title = document.getElementById("title").innerHTML;
for(var i = 0; i < title.length; i++){
if(num % 2 == 0){
if(i % 2 == 0){
str += '<span style = "color: silver;">' + title.charAt(i) + '</span>';
} else {
str += title.charAt(i) + "";
}
} else {
if(i % 2 != 0) {
str += '<span style = "color: silver;">' + title.charAt(i) + '</span>';
} else {
str += title.charAt(i) = "";
}
}
}
document.getElementById("title").innerHTML = str;
num++;
if(num == 10)
num = 0;
setTimeout("animateText()", 500);
}
啊,谢谢你们 - 固定错字和传球setTimeout函数引用正在工作。然而,动画会导致浏览器崩溃 - 看起来好像第一行('var str =“”;')在第一次迭代之后没有进行评估......相反,输出类似于+ =操作。有关于此的任何想法? – 2012-04-09 06:08:53