ここで説明した方法以外の別のアプローチを使用して問題を解決しようとしています
だから私は次のような関連するhtmlを持っています:
<div id="main-container"></div>
<div id="list-container">
<ul id="list">
<li class="thumb"><img src="img/thumb-image1.jpg"></li>
<li class="thumb"><img src="img/thumb-image2.jpg"></li>
<li class="thumb"><img src="img/thumb-image3.jpg"></li>
<li class="thumb"><img src="img/thumb-image4.jpg"></li>
<li class="thumb"><img src="img/thumb-image5.jpg"></li>
<li class="thumb"><img src="img/thumb-image6.jpg"></li>
</ul>
</div>
次に、次の名前の6つの画像を含むimgフォルダーがどこかにあります。
image1.jpg image2.jpg image3.jpg image4.jpg image5.jpg image6.jpg
そして、jqueryを使用して、cssとリストインデックスを3秒間隔で操作することにより、基本的にコンテナdiv内の画像を交換しようとしています。だから私の最初の推測はこれでした:
$('#list li').each(function(index){
$('#main-container').css({
'background':'url("img/image'+(index+1)+'.jpg")'
});
残念ながら、私が望むようには機能していません。最後のインデックスである 5 を吐き出すだけなので、表示される画像は最初の image1 ではなく image6 になり、3 秒後に image2 と 2 秒後に再び image3 が表示されます。
setInterval()
では、インデックスを変更して画像の回転効果を作成するにはどうすればよいでしょうか。
ノート:
<div id="main-container"></div>
動的に呼び出されたときに img フォルダーに保存されている画像のプレースホルダーとして機能する単なる空のコンテナーです。
実際、js ファイルでは、サムネイルをクリックすると以下のコードが動作します。
$('#list li').each(function(index){
$(this).on('click', function(){
$('#main-container').css({
'background':'url("img/image'+(index+1)+'.jpg")'
});
});
});
#main-container
私の目的は、サムネイルがクリックされていなくても、連続したスライドショーを作成する際に同等の大きな画像が回転することでした。