我想通過交替每個其他字符的顏色來動畫一些文本。我的代碼儘可能以單向的方式工作,但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