こんにちわ
kitamuraです。
最近よくこんなUI目にしませんか?
左側に余白があって、右側に要素が並ぶやつ…
デザイナーさんからも依頼が多いこちらの仕様
実はちょっとだけ厄介で詰まることが多いかなと思います!
今回は一番手軽に実装できる方法をご紹介したいと思います。
実際に作成したデモがこちら
順番に解説していきます…
1. Swiperの準備
今回はSwiperを使用して実装していきますので
Swiperの準備をします。
SwiperはjQuery非依存で様々なカスタマイズができるスライダープラグインです。
IE対応する場合はバージョン4以下を使用するかpolyfillを使用してください。
CDN
<link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.css"> <link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css"> <script src="https://unpkg.com/swiper/swiper-bundle.js"></script> <script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
2. HTMLの記述
<!-- Slider container --> <div class="swiper-container"> <!-- Slider wrapper --> <div class="swiper-wrapper"> <!-- Slides --> <div class="swiper-slide">Slide 1</div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> <div class="swiper-slide">Slide 4</div> <div class="swiper-slide">Slide 5</div> </div> </div>
今回はページネーションなどは実装しないため
Swiperで必要最低限な記述のみとします。
3. CSSの記述
.swiper-container { padding: 0 20px;//左右の余白はcontainerに指定する .swiper-wrapper { padding: 30px 0; .swiper-slide { // slideに任意の幅と高さ指定 width: 150px; height: 100px; // 以下見た目調節 border-radius: 10px; box-shadow: 0px 3px 15px rgba(0,0,0,0.2); display: flex; align-items: center; justify-content: center; &:nth-child(1) { background-color: #C5D7D9; } &:nth-child(2) { background-color: #D9BFA9; } &:nth-child(3) { background-color: #F2DFCE; } &:nth-child(4) { background-color: #594F4F; } &:nth-child(5) { background-color: #95D9D9; } } } }
ポイントは.swiper-containerにパディングを指定しているところです!
※.swiper-wrapperに余白を入れても上手く動作しませんのでお気を付けて
今回は.swiper-slideの大きさをCSSでコントロールしているので
.swiper-slide にwidthとheightを入れています。
このあたりは場合によって調整してください。
4. JavaScriptの記述
var swiper = new Swiper('.swiper-container', { slidesPerView: 'auto', spaceBetween: 20, freeMode: true, freeModeSticky: true, touchRatio: .03, grabCursor: true });
slidesPerViewは 今回はCSSでサイズ調整しているのでautoにしてください。
spaceBetweenに任意のマージンを指定してください。
freeModeをtrueにすることで スワイプ時の動きが強さでスクロールされます。
freeModeStickyをtrueにすると スライドに合わせてスクロールがストップしてくれます。
touchRatioはスワイプ後の遅延を調整できます。お好みで調整してください。
grabCursorをtrueにするとカーソルが手の掴むアイコンへ変わります。
その他詳しいオプションの調整などは Swiperの公式サイトで確認できますので
そちらを参照しながら色々試してみてください。
5. まとめ
いかがでしたでしょうか
今回は比較的に簡単に実装できるものを紹介しました。
他にもページネーション やサムネイル表示など色々な工夫ができるかと思います…!
ぜひ色々カスタマイズして使用してみてください。
弊社のコーポレートサイトのトップページの制作実績のスマホ表示などでも
スライダーのサムネイルとして使用してますので
良かったらみてみてください。