見出し画像

Swiper:流れ続けるスライダー

実装の手順


①:swiperのサイトからCDNをコピーぺする

https://swiperjs.com/get-started
CSSタグは自身で設定したreset.css style.cssの上に記述
scriptタグは自身で設定したscriptタグの上に記述
(swiperはJQueryに依存していないので、JQueryのscriptの上下どちらでも大丈夫!)
②:HTML と jsのコードをコピペする
③:②のHTMLにデザインに合わせてHTMLを追加、クラス追加し、CSSで装飾する
その際、デフォルトで当たっているアイコン的なもの(横スライドのための三角や、下のドット)を検証ツールでみつけ、その値を追加したクラス名をつかって上書きする。
ex. display:none でafter要素で装飾されている三角アイコンを消してbackground:url(./アイコン画像)で指定したいアイコンを追加する
④:jsの動きは新たにidを追加し(id=”js- “)、②もともとのスライダーの対象クラスをidに変更する
(同サイトで他にスライダーを実装した時にかぶらないように)


参考オプションサイト↓



  const swiper = new Swiper(".swiper", {
    direction: "horizontal", // スライドの移動方向を水平方向に設定
    loop: true, // スライドが最後に達した後、最初に戻るループを有効にする
    slidesPerView: "auto", // 表示するスライドの数を自動で調整
    spaceBetween: 10, // スライド間のスペースを10pxに設定
    speed: 3000, // スライドの移動速度を3000ミリ秒(3秒)に設定
    autoplay: {
      delay: 0, // 自動再生の遅延を0ミリ秒に設定(すぐに次のスライドに移動)
      disableOnInteraction: false, // ユーザーがスライドを操作しても自動再生を停止しない
    },
    breakpoints:{
        // 画面幅600px以上の時
        900:{
          spaceBetween: 20,
        },
    }
});

バージョンによって不具合がおきることがあるらしい。
今回は11で実装。
上記のjsによって、
loop: true,       無限ループ
slidesPerView: "auto "  幅いっぱいに画像を表示しスライドさせる。
spaceBetween: 10    スライドの幅はspは10px
breakpoints:{ 900:{ spaceBetween: 20, }, pcは20px
autoplayの記述によって自動再生される(この記述がないと手動)
delay: 0,   切り替えの時間を0にすることですぐに次のスライドになる
disableOnInteraction: false, 自動再生は操作しても止まらない

画像の大きさはSCSSで指定。


/* スライドの動き等速 */

.swiper-wrapper {
  transition-timing-function: linear;
}
/* 画像のサイズ調整 */

.swiper-slide {
  width: 100px;
  height: 100px;
 
  
  @include mq("lg") {
    width: 200px;
    height: 200px;
  }
}

.swiper-wrapper { transition-timing-function: linear; }
スライドのアニメーションが滑らかに見えるようにするためのもの。linear は、アニメーションの進行が均一であることを意味する。

この記事が気に入ったらサポートをしてみませんか?