私は他のすべての文字の色を交互にしてテキストをアニメーション化しようとしています。私のコードはそれを一方向にスタイル化するように働いていますが、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);
}
ああ、おかげでみんなでないだけで結構です - タイプミスや通過を固定関数リファレンスが機能しています。しかし、アニメーションがブラウザをクラッシュさせている - 最初の行( 'var str =" ";')が最初の繰り返しの後で評価されていないかのように思われます。代わりに、出力は+ =操作に似ています。その上の任意のアイデア? –