以下に示すhtml構造からカルーセルを作成しています。実際には約40枚の画像があります。
<div id="carousel">
<div class="pris"><img src=""/></div>
<div class="pris"><img src=""/></div>
<div class="pris"><img src=""/></div>
<div class="pris"><img src=""/></div>
<div class="pris"><img src=""/></div>
<div class="pris"><img src=""/></div>
</div>
コンテナーの「カルーセル」が水平ではなく垂直にオーバーフローします。これは、.pris が左にフロートされているためです。これは簡単に変更できるものではないと思います。レスポンシブ デザインが壊れてしまい、サポートが必要な初期バージョンの IE で悪夢を引き起こすからです。
親コンテナーに表示できるカルーセルの img の数を計算できます。最大は 4、最小は 1 です。
このような方法で、つまり 1 つずつ画像を循環させる必要があります。左右の画像が適切にコンテナに出入りします。
最初のクラスが常にコンテナーの左上にあるため、非表示/表示の場合、下位レベルの div のようにコンテナーを水平に通過するのではなく、常にその領域に表示されます。
要するに、画像が 1 つの画像の高さの長い水平線に収まらない場合、カルーセルを作成する方法は?
編集 - なぜ人々がこの質問を閉じるように求めているのかわかりません。非常に明確です。カルーセルの場合のように、水平方向ではなく垂直方向に積み重ねられた画像の div からカルーセルを作成することは可能ですか。
循環するときは正常に機能しますが、最初に戻ったときは機能しない編集(いくつかのテストコード)。
右矢印:
$('#arrow_right a').click(function(e) {
var current = $('#pris').find('div.current');
var next = (current.next('.pris').length) ? current.next('.pris') : $("div.pris:first");
current.removeClass('current');
current.hide();
next.addClass('current');
next.show();
show_next(getVisible());
e.preventDefault();
});
function show_next(no_visible)
{
current = $('#carousel').find('div.current');
next_one = (current.next('.pris').length) ? current.next('.pris') : $("div.pris:first");
next_two = (next_one.next('.pris').length) ? next_one.next('.pris') : $("div.pris:first");
next_three = (next_two.next('.pris').length) ? next_two.next('.pris') : $("div.pris:first");
switch(no_visible)
{
case 4:
next_one.show();
next_two.show();
next_three.show();
break;
case 3:
next_one.show();
next_two.show();
break;
case 2:
next_one.show();
break;
}
}