Swiperを使って自動でループするスライダーを作りたいと思い、次のようなコードを書きました。
HTML
1<div class="swiper-container"> 2 <ul class="swiper-wrapper"> 3 <li class="swiper-slide swiper-slide1">1</li> 4 <li class="swiper-slide swiper-slide2">2</li> 5 <li class="swiper-slide swiper-slide3">3</li> 6 <li class="swiper-slide swiper-slide4">4</li> 7 <li class="swiper-slide swiper-slide5">5</li> 8 </ul> 9</div>
CSS
1body, ul { 2 margin: 0; 3 padding: 0; 4} 5 6li { 7 list-style: none; 8} 9 10.swiper-slide { 11 height: 100px; 12 line-height: 100px; 13 color: white; 14 text-align: center; 15 font-size: 36px; 16 font-weight: bold; 17} 18 19.swiper-slide1 { 20 background-color: red; 21} 22 23.swiper-slide2 { 24 background-color: blue; 25} 26 27.swiper-slide3 { 28 background-color: yellow; 29 color: #000; 30} 31 32.swiper-slide4 { 33 background-color: green; 34} 35 36.swiper-slide5 { 37 background-color: purple; 38}
Swiperについては、少し古いですが、
インターネットエクスプローラーにも対応させたかったため、
バージョン4.2.5を読み込んでいます。
最初にswiper.min.cssとswiper.jsを読み込んだあと、
次のようなJavaScriptコードを書きました。
JavaScript
1var mySwiper = new Swiper('.swiper-container', { 2 loop: true, 3 centeredSlides: true, 4 slidesPerView: 3.76, 5 spaceBetween: 56, 6 autoplay: { 7 delay: 3000, 8 }, 9});
ここで問題となるのが、slidesPerView: 3.76,という記述です。
仮にslidesPerView: 3,と記述すると問題なく自動スライドします。
ですが今回は5つのliタグのうち両端の2つは画面から見切れさせたかったので、
3.76という数値にしています。
ところがこのような数値を入力すると、
本来は画面の中央は1,2,3,4,5,1,2,3,・・・と順に表示されなければならないのに、
このコードでは画面の中央が1,2,4,5,1,2,4,5,1,2,4,・・・というように
3を飛ばしてスライドされてしまいます。
なんとか1,2,3,4,5ときれいにスライドさせたいのですが、
どのようにすればいいのでしょうか?
JavaScriptを修正する方法でもいいですし、CSSを修正する方法でも構いません。
とにかく両端が見切れたうえで、きれいにスライドさせたいのです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。