CSS3 badge

モバイルサイトでよく見かける、横にスライドするカルーセル・スライダー。
最近では単にスライドするだけでなく、フリックしたときに慣性スクロールで動くものが流行っています。
今日はこの『慣性スクロール付きカルーセル』を JavaScript 無しで実装する方法を紹介します。

HTML

ここでは仮に、下記のようなHTMLを用意します。

<ul class="carousel">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>

CSS

キモとなるスタイルシートの記述です。

.carousel {
width:100%;
padding:12px 0;
overflow-x:scroll;
-webkit-overflow-scrolling:touch;
overflow-scrolling:touch;
white-space:nowrap;
}

.carousel li {
background: #fff;
margin: 2px;
text-align: center;
display: inline-block;
}

重要なのは-webkit-overflow-scrolling:touch;の箇所。
これで慣性スクロールが実現します。

DEMO

簡単なサンプルを用意しましたので実際の挙動をご確認ください。

CSS3 CAROUSEL : https://on-ze.com/demo/css3-carousel/

モバイル端末での閲覧を推奨。

左右のフリック操作で要素がスライドします。
ぜひお試しください。