現在使用しているメソッドを使用する場合は、へ.delay()
の最初の呼び出しの前に配置します.animate()
。ただし、これは、このメソッドを連続して複数回呼び出していることを前提としています。
$('.photogallery').delay(4000).animate({
opacity: 0
}, 3000, function () {
$(this).css('background', 'url(' + preloadArr[currImg++%preloadArr.length].src +')';
}).animate({
opacity: 1
}, 3000);
デモ
メソッドが次の反復を自己トリガーするようにしたい場合changeImg
は、アニメーションの実行の最後に再帰的に呼び出すことができます。これにより画像が回転しますが、無限ループに再帰を利用すると、ブラウザで問題が発生することがよくあります。
$('.photogallery').delay(4000).animate({
opacity: 0
}, 3000, function () {
$(this).css('background', 'url(' + preloadArr[currImg++%preloadArr.length].src +')';
colorIndex++;
}).animate({
opacity: 1
}, 3000, changeImg);
デモ
推奨される方法はwindow.setInterval
、ブラウザがメソッドを呼び出すまでの時間を設定するために使用することです。メソッド内で発生するアニメーションの遅延は考慮されないため、タイミングを調整する必要があります。これを簡単に回避するために、withをスケジュールする前に一度だけ呼び出しましたsetInterval
。
changeImg();
window.setInterval(changeImg, 4000);
デモ