次のように、css を変更して 2 つの画像を回転させたい:
document.getElementById("id").style.backgroundImage = "url('image2.png')";
document.getElementById("id").style.backgroundImage = "url('image1.png')";
ただし、関数呼び出しで 4 回だけ実行する必要があります。
setTimeout() メソッドを使用してみましたが、うまくいかないようです。
これは、クリックで初期化されている私の現在のコードです。
var d = new Date();
var n;
var i;
function flash() {
n = d.getTime();
var newTime = d.getTime();
var called = 0;
i = 0;
while ((newTime - n) < 2000) {
document.getElementById("i_count").innerHTML = i;
if (!(i % 2) && (!called)) {
called = 1;
setTimeout("change_1()", 250);
i++;
called = 0;
} else if ((i % 2) && (!called)) {
called = 1;
setTimeout("change_2()", 250);
i++;
called = 0;
}
newTime = d.getTime();
}
}
function change_1() {
document.getElementById("id").style.backgroundImage = "url('image2.png')";
return;
}
function change_2() {
document.getElementById("id").style.backgroundImage = "url('image1.png')";
return;
}
while ループでカウントする代わりにタイマーを使用しようとしましたが、ページがブロックされ、読み込まれません。while ループでカウンターを使用していたとき、change_2() を呼び出さずにインクリメントしました。これは、カウンターが停止条件を過ぎてインクリメントしたことを意味します。
私は非常に(少なくともそのように聞こえる)単純なタスクを実行したいと考えています.クリックアクションで一定時間画像を回転させて停止します.
...ネットで検索してみたのですが、ここ2時間くらい連続回転しか見られませんでした。
助けてくれてありがとう!
コードを次のように変更しましたが、1 サイクルしか取得できません。カウンタは、change_1 および 2 の完了に関係なく増加します。
var i;
function flash() {
i = 0;
while (i++ < 10) {
document.getElementById("i_count").innerHTML = i;
setTimeout("change_1()", 250);
}
};
function change_1() {
document.getElementById("1").style.backgroundImage = "url('images/img_1.png')";
setTimeout("change_2()", 250);
};
function change_2() {
document.getElementById("1").style.backgroundImage = "url('images/img_2.png')";
};