私は、実装している Web サイト用の自己完結型レスポンシブ CSS コンポーネント (カルーセルのタイプ) に取り組んでいます。
必要なのは、(サーバーからロードされた) コンテンツ アイテムを無限に持ち、一度に 2 つだけ表示することです。ユーザーがアイテムのリストを進めると、左にスクロールしているように見え、新しいアイテムが右から移動して現在のアイテムを左に押し出します。
項目は、現在のレスポンシブ レイアウトに従って幅を取得する必要があります。
一般的な考え方は、ページ レイアウトの一部であり、ビューポートのサイズを埋めるように取得するコンテナーであるpx
または に記載されている任意の幅を受け入れることができるビューポートを持つことです。およびラップせずに水平に並べて配置されたアイテムの場合、アイテムの幅は 50% になるため、ちょうど 2 つのアイテムがコンテナー/ビューポートに収まり、残りのアイテムはオーバーフローします (非表示になります)。%
width: 100%
<div class="viewport">
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<!-- more items get loaded as the user advances through the content -->
</div>
</div>
「スクロール」は、最初のアイテムに負のマージンを設定することで実現されます。この手法では、常に負のマージンを設定できます。<アイテム数> * 50%
私はこれを主に次のjsfiddleで動作させました: http://jsfiddle.net/gZBEV/5/ アイテムは正しく配置され、周囲のビューポートの幅に応じて幅を取得します。(ボタンを使用してアイテムの移動/スクロールをエミュレートします)
問題は、レイアウトを台無しにする各アイテム間に現れる水平方向のギャップ (矢印で表示) です。
これに対する解決策は、次のようにアイテム間に水平方向の隙間がない方法を見つけることです。
このフィドルhttp://jsfiddle.net/gZBEV/5/を出発点として使用してください。