【发布时间】:2012-04-09 05:39:13
【问题描述】:
我正在尝试通过交替每个其他字符的颜色来为某些文本设置动画。我的代码正在以一种方式对其进行样式设置,但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 = "";) 在第一次迭代后没有进行评估......相反,输出类似于 += 操作。有什么想法吗?
标签: javascript animation global-variables settimeout counter