私は31の画像を持っていて、それらをdivの背景として次々に表示したいと思います。私は、ユーザーがdivの上を移動するときに変更するだけです。今私の問題は、すべての画像を本当に速く反転させることだけです。 setTimeoutを使用しようとしていますが、動作していません。遅延を働かせるにはどうすればいいですか?ここ div要素の名前はAbout_Me_Blockで、画像がframe1.gifと呼ばれ、frame2.gif ...などsetTimeoutを使って背景画像を変更する
は私のコードです:
function changeImg(counter) {
$('#About_Me_Block').attr("style", "background-image: url(playGif/frame" + counter + ".gif);");
}
$(document).ready(function() {
var hoverAnimate = []
"use strict";
$('#About_Me_Block').mouseenter(function() {
hoverAnimate[0] = true;
var counter = 0;
while (hoverAnimate[0]) {
console.log(counter);
setTimeout(changeImg(counter), 1000);
counter++;
if (counter === 32)
hoverAnimate[0] = false;
}
});
$('#About_Me_Block').mouseleave(function() {
hoverAnimate[0] = false;
$(this).attr("style", "background-image: url(play.jpeg);");
});
});
アニメーションは何ですか? –
jQueryを使用してアニメートしません。それは私が推測するGIFのように見えるように画像のセットをちょうど反転しています。問題は実際に見えるようにするために遅延が必要な場合です。そうでない場合は、最後の画像にすばやくフリップされます。 –
'setTimeout(changeImg(counter)、1000)'を呼び出すと、実際にはchange関数を直接呼び出すことになります。 [bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)を使用して、必要な処理を行うsetTimeoutに渡す関数を作成することができます。 'setTimeout(changeImg.bind(this、counter)、1000)' – Hamms