Swiper API 日本語ドキュメント

Javascript
この記事は約145分で読めます。

公式

参考:

swiper.js6系使ってみたからそのオプションについて(v6.0.4) | なんかいろいろデザインする人
3系swiper、4系swiperのオプション記事を以前書いたんだけど、また久しぶりに公式見たら6系まで進んで

Swiper のHTML部分

<!-- Slider main container -->
<div class="swiper-container">
  <!-- Additional required 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>
  <!-- If we need pagination -->
  <div class="swiper-pagination"></div>

  <!-- If we need navigation buttons -->
  <div class="swiper-button-prev"></div>
  <div class="swiper-button-next"></div>

  <!-- If we need scrollbar -->
  <div class="swiper-scrollbar"></div>
</div>

Styles (翻訳省略)

Swiper package contains different sets of CSS, Less and SCSS styles:

CSS Styles

CSS styles for bundle version:

  • swiper-bundle.css - all Swiper styles including all modules styles (like Navigation, Pagination, etc.)
  • swiper-bundle.min.css - same as previous but minified

CSS styles for core version and modules:

  • swiper.min.css - only core Swiper styles
  • components/a11y/a11y.min.css - styles required for A11y module
  • components/controller/controller.min.css - styles required for Controller module
  • components/effect-coverflow/effect-coverflow.min.css - styles required for Coveflow Effect module
  • components/effect-cube/effect-cube.min.css - styles required for Cube Effect module
  • components/effect-fade/effect-fade.min.css - styles required for Fade Effect module
  • components/effect-flip/effect-flip.min.css - styles required for Flip Effect module
  • components/lazy/lazy.min.css - styles required for Lazy module
  • components/navigation/navigation.min.css - styles required for Navigation module
  • components/pagination/pagination.min.css - styles required for Pagination module
  • components/scrollbar/scrollbar.min.css - styles required for Scrollbar module
  • components/thumbs/thumbs.min.css - styles required for Thumbs module
  • components/zoom/zoom.min.css - styles required for Zoom module

Less Styles

Less styles are separate styles for core version and modules:

  • swiper.less - only core Swiper styles
  • components/a11y/a11y.less - styles required for A11y module
  • components/controller/controller.less - styles required for Controller module
  • components/effect-coverflow/effect-coverflow.less - styles required for Coveflow Effect module
  • components/effect-cube/effect-cube.less - styles required for Cube Effect module
  • components/effect-fade/effect-fade.less - styles required for Fade Effect module
  • components/effect-flip/effect-flip.less - styles required for Flip Effect module
  • components/lazy/lazy.less - styles required for Lazy module
  • components/navigation/navigation.less - styles required for Navigation module
  • components/pagination/pagination.less - styles required for Pagination module
  • components/scrollbar/scrollbar.less - styles required for Scrollbar module
  • components/thumbs/thumbs.less - styles required for Thumbs module
  • components/zoom/zoom.less - styles required for Zoom module

SCSS Styles

SCSS styles are also separate styles for core version and modules:

  • swiper.scss - only core Swiper styles
  • components/a11y/a11y.scss - styles required for A11y module
  • components/controller/controller.scss - styles required for Controller module
  • components/effect-coverflow/effect-coverflow.scss - styles required for Coveflow Effect module
  • components/effect-cube/effect-cube.scss - styles required for Cube Effect module
  • components/effect-fade/effect-fade.scss - styles required for Fade Effect module
  • components/effect-flip/effect-flip.scss - styles required for Flip Effect module
  • components/lazy/lazy.scss - styles required for Lazy module
  • components/navigation/navigation.scss - styles required for Navigation module
  • components/pagination/pagination.scss - styles required for Pagination module
  • components/scrollbar/scrollbar.scss - styles required for Scrollbar module
  • components/thumbs/thumbs.scss - styles required for Thumbs module
  • components/zoom/zoom.scss - styles required for Zoom module

Initialize Swiper (翻訳省略)

Now, when we have Swiper's HTML, we need to initialize it using the following function:

new Swiper(swiperContainer, parameters)- initialize swiper with options

  • swiperContainer - HTMLElement or string (with CSS Selector) of swiper container HTML element. Required.
  • parameters - object - object with Swiper parameters. Optional.
  • Method returns initialized Swiper instance

For example:

const swiper = new Swiper('.swiper-container', {
  speed: 400,
  spaceBetween: 100,
});

After you initialize Swiper it is possible to access to Swiper's instance on its HTMLElement. It is swiper property of Swiper's HTML container element:

const swiper = document.querySelector('.swiper-container').swiper;

// Now you can use all slider methods like
swiper.slideNext();

Parameters

Let's look on list of all available parameters:

NameTypeDefaultDescription
allowSlideNext
-次のスライドに移れるか
booleantruefalseに設定すると、次のスライド方向(右または下)へのスワイプが無効になります。
allowSlidePrev
-前のスライドに移れるか
booleantruefalseに設定すると、前のスライド方向(左または上)へのスワイプが無効になります。
allowTouchMove
-スワイプなどのタッチ
操作でスライドを
移動できるか
booleantruefalseの場合、スライドを切り替えるには、slidePrevやslideNextなどの外部API関数を使用するしかありません。
autoHeight
booleanfalsetrueに設定すると、スライダー・ラッパーの高さは、現在アクティブなスライドの高さに合わせます
breakpointsobject レスポンシブブレークポイント(画面サイズ)ごとに、異なるパラメータを設定できるようになります。すべてのパラメータがブレイクポイントで変更できるわけではなく、slidesPerView、slidesPerGroup、spaceBetween、slidesPerColumnのような、異なるレイアウトやロジックを必要としないパラメータのみ変更できます。ループやエフェクトなどのパラメータは動作しません。

const swiper = new Swiper('.swiper-container', {
  // Default parameters
  slidesPerView: 1,
  spaceBetween: 10,
  // Responsive breakpoints
  breakpoints: {
    // when window width is >= 320px
    320: {
      slidesPerView: 2,
      spaceBetween: 20
    },
    // when window width is >= 480px
    480: {
      slidesPerView: 3,
      spaceBetween: 30
    },
    // when window width is >= 640px
    640: {
      slidesPerView: 4,
      spaceBetween: 40
    }
  }
})
const swiper = new Swiper('.swiper-container', {
  slidesPerView: 1,
  spaceBetween: 10,
  // using "ratio" endpoints
  breakpoints: {
    '@0.75': {
      slidesPerView: 2,
      spaceBetween: 20,
    },
    '@1.00': {
      slidesPerView: 3,
      spaceBetween: 40,
    },
    '@1.50': {
      slidesPerView: 4,
      spaceBetween: 50,
    },
  }
});
breakpointsBase
-siper-containerの幅で
ブレイクポイントを
設置するか
string'window'ブレイクポイントのベース(ベータ版)。windowまたはcontainerを指定します。windowに設定されている場合(デフォルト)、ブレイクポイントキーはwindowの幅を意味します。containerに設定されている場合、ブレークポイント・キーはSwiperのコンテナ幅として扱われます。

現在はベータ版で、Swiper Angular、React、Svelte、Vueコンポーネントではサポートされていません。

centerInsufficientSlidesbooleanfalse有効にすると、スライド数がslidesPerViewより少ない場合、スライドを中央に配置します。loopモードとslidesPerColumnの使用は意図していません。
centeredSlidesbooleanfalse

trueの場合、アクティブなスライドは中央に表示され、常に左側に表示されるわけではありません。

trueにすると、スライドのスタート(デフォルトでは0枚目)が左端じゃなくて真ん中になる。実質slidesPerViewが3以上の奇数前提な気がする。
例えば、slidesPerViewが3の時はslide1が真ん中にくる。左には何もない、右にはslide2がある状態。

centeredSlidesBoundsbooleanfalsetrueの場合、アクティブなスライドは、スライダーの最初と最後にギャップを追加することなく中央に配置されます。centeredSlides: trueを指定してください。loop や paginationとの併用は想定していません。
containerModifierClassstring'swiper-container-'さまざまなパラメータに応じてswiper container部分に追加される接頭辞モディファイアCSSクラス

swiper-container、swiper-wrapper、swiper-slideは、class名は基本的にそのままで使い、class名を変更する場合はパラメータ(containerModifierClass、wrapperClass、slideClass)を使用し、変更します。

cssModebooleanfalse有効にすると、最新のCSS Scroll Snap APIを使用します。Swiperのすべての機能をサポートしているわけではありませんが、シンプルな構成であれば、より優れたパフォーマンスを発揮する可能性があります。

有効にするとサポートされないものは以下の通りです。

  • すべてのエフェクト(フェード、カバーフロー、フリップ、キューブ)
  • ズーム
  • バーチャルスライドVirtual Slides
  • speedパラメータは影響しません。すべてのトランジションの開始/終了関連イベント(代わりにslideChangeを使用してください
  • slidesPerGroupのサポートには制限があります。
  • centeredSlidesはサポートされていません。
  • scrollTo.behaviour = 'smooth'がサポートされていないブラウザでは、タッチ/スワイプ/マウスホイール以外でのスライドの変更はトランジションなしで行われます(例:デスクトップおよびiOSのSafari)。
  • simulateTouchは効果がなく、マウスでの「ドラッグ」は機能しません。
  • resistance の効果はありません。
  • allowSlidePrev/Next
  • swipeHandler
  • freeModeおよび関連するすべての機能
direction
-縦スライドか横スライドか
'horizontal' |
'vertical'
'horizontal'「水平(horizontal)」または「垂直(vertical)(縦型スライダーの場合)」を指定できます。
edgeSwipeDetectionboolean | stringfalseアプリでのスワイプバック作業(=戻るボタンを幼くても画面端をスワイプで前の画面に戻る)のためのSwiperイベントの解放を有効にします。preventに設定すると、代わりにシステムのスワイプバックナビゲーションを防止します。
edgeSwipeThresholdnumber20画面の左端からアプリのスワイプバックのタッチイベントを解除するまでの領域(px単位)(=左端から◯pxまでの領域でスワイプするとスワイプバックする?)
effect'slide' , 'fade' ,
 'cube'
'coverflow'

'flip'
'slide' 
enabledbooleantrueSwiperを初期状態で有効にしているかどうか。Swiperを無効にすると、すべてのナビゲーション要素が非表示になり、いかなるイベントや相互作用にも反応しなくなります
followFingerbooleantrue無効にした場合、スライダーは指を離した時のみアニメーションし、指を置いている間は動きません。
freeModebooleanfalse有効にすると、スライドの位置が固定されません。

スワイプした際にスライドぴったりに止まらなくなる。固定位置がなくなるというかなんというか。区切りがなくなるというか。すーっといくというか。
フルスクリーンでこれやると面白アプリケーション風サイトが作れるかも。
参考(https://reiwinn-web.net/2020/07/16/swiper-6-0-4/)

freeModeMinimumVelocitynumber0.02フリーモードモメンタムの発生に必要な最低タッチ移動速度

freeModeMomentumがtrue前提。freeModeを開始するトリガーとなるスワイプの最小速度を設定できる。

freeModeMomentumbooleantrue有効にすると、スライドを離した後もしばらくの間、スライドが動き続けます。

freeModeがtrue前提。trueだと、FreeModeでのスワイプ時に慣性スクロールみたいなのが働くようになる。これtrueじゃないとfreeMode使う理由薄そうな感じする

freeModeMomentum
Bounce
booleantrueフリーモードでモーメンタムバウンスを無効にしたい場合は、falseを設定します。

freeModeMomentumがtrue前提。trueだと一番最後のスライドに行った時にバウンスする感じのアニメーションが起きる。
デフォルトではtrue。

freeModeMomentum
BounceRatio
number1値が大きいほど、モーメンタムバウンス効果が大きくなります。

バウンスする時のエフェクトを調整できる。数字が大きいと跳ね返りの白いところが大きくなる。
デフォルトでは1。

freeModeMomentumRationumber1値が大きいほど、スライダを離した後の運動量(完成スクロールみたいなののスクロール量)が大きくなります。
freeModeMomentum
VelocityRatio
number1値が大きいほど、スライダを離した後の運動量が大きくなります。
=数字を大きくすれば、慣性スクロール的なやつの速度を早くできる。
freeModeStickybooleanfalseフリーモードでのスライドポジションへのスナップを有効にするには、enabledに設定します。

freeModeがtrue前提。trueだと、freeModeで慣性が切れる着地点に対して一番近い固定位置に収まるようになる。スナップが有効になる。
デフォルトではfalse。

grabCursorbooleanfalseこのオプションは、デスクトップの使い勝手を少し改善する可能性があります。trueの場合、Swiperにカーソルを置いたときに "grab "カーソルが表示されます。

カーソルがグローブになる。ユーザビリティ向上

heightnumber | nullnullスワイパーの高さ(単位:px)。パラメータは、Swiperの高さを強制的に変更します。Swiperが隠れているときにSwiperを初期化する場合や、SSRおよびTest環境でSwiperを正しく初期化する場合にのみ有用です。

スライドの高さを指定する…んだけど、応答しなくなるらしい。バグなのか謎。個人的には設定しないことを推奨。高さを固定したい場合はcssでやった方がいいかも。
デフォルトでは何も設定されていない。100%みたいな感じ(厳密には少し違うけど)。

initbooleantrueインスタンス作成時にSwiperを自動的に初期化するかどうかを指定します。無効の場合は、swiper.init()を呼び出して手動で初期化する必要があります。

スワイパー初期化直後に実行される。メソッドで書く場合はオプションにinit: falseを設定する必要がある。正直めんどいからオプションに入れるようにした方がいいと思う。

1
2
3
4
5
6
7
var swiper = new Swiper('.swiper-container', {
  init: false,
  // other parameters
})
swiper.on('init', function() { /* do something */ });
// init Swiper
swiper.init();
1
2
3
4
5
6
7
8
var swiper = new Swiper('.swiper-container', {
  // other parameters
  on: {
    init: function () {
      /* do something */
    },
  }
});
initialSlidenumber0最初に表示されるスライドのインデックス番号。
longSwipesbooleantrue

長時間のスワイプを無効にしたい場合は、falseに設定してください。

時間の長いスワイプを無効にする場合はfalseを設定する。基本デフォルト推奨。

longSwipesMsnumber300

長時間のスワイプ時に次/前のスライドへのスワイプをトリガーするための最小持続時間(ms)

時間の長いスワイプをした時に、どのくらい経過したら次(もしくは前)のスライドへ行くのをキャンセルするかを設定できる。ミリ秒。
デフォルトでは300。

longSwipesRationumber0.5

長時間のスワイプで次/前のスライドに移動する比率

時間の長いスワイプをした時に、どのくらい次(もしくは前)のスライドが見えてたら次(もしくは前)のスライドに行くかを設定できる。個人てきには0.4くらいが好き。

loopbooleanfalse

連続ループモードを有効にするには、trueを設定します。

ループモードの動作の性質上、重複したスライドが追加されます。そのような重複したスライドには、追加のクラスがあります。

  • swiper-slide-duplicate - 重複したスライドを表します。
  • swiper-slide-duplicate-active - 現在アクティブなスライドに複製されたスライドを表します。
  • swiper-slide-duplicate-next - アクティブなスライドの次のスライドに複製されたスライドを表します。
  • swiper-slide-duplicate-prev - アクティブなスライドの前のスライドに複製されたスライドを表します。

 slidesPerView: 'auto'と一緒に使う場合は、loopedSlidesパラメータにループ(複製)するスライドの数を指定する必要があります。

trueだとループするようになる(最後のスライドの時にnextのボタンを押したりすると最初のスライドに行く。逆も同様)。これを設定した際、正面のスライドに.swiper-slide-duplicate-activeが、次のスライドに.swiper-slide-duplicate-nextが、前のスライドに.swiper-slide-duplicate-prevが追加される。また、複製されたスライドにはすべて.swiper-slide-duplicateのクラスが追加されている。
デフォルトではfalse。

loopAdditionalSlidesnumber0

ループ作成後にクローン化されるスライドの数の追加

ループ作成時に作成されるクローンの枚数。見た目では特に変化せず、ソースコード上で変わる。
デフォルトでは0。

loopFillGroupWithBlankbooleanfalse

有効にしてループモードにすると、スライドの数が足りないグループを空白のスライドで埋めます。slidesPerGroupパラメータと併用すると良いでしょう。

slidesPerGroupを使用していて、スライドの枚数が足りなくてループどうしよう!って時に。足りない分を空白のスライダーで埋めてくれる。
正直、その状況自体があまり良くないような気がするが、システムでは使う機会があるかもしれない。

loopPreventsSlidebooleantrue

有効にすると、トランジションがすでに進行しているときに、Swiperのスライドの前/次のトランジションを防ぐことができます(ループを有効にすると効果があります)。

スライドアニメーションが実行されると、前のスライドアニメーションがキャンセルされる・・・らしい。
swiperのオリジナルスライドアニメーションを組んでいる場合はもしかしたらfalseにする機会があるかもしれない。基本デフォルト推奨。
デフォルトではtrue。

loopedSlidesnumber |
null
null

ループモードでslidesPerView:'auto'を使用する場合は、このパラメータを使用して、何枚のスライドをループ(複製)させるかをSwiperに伝える必要があります。

slidesPerView: 'auto'かつ loop: trueの場合は必須。最初のスライドの前、最後のスライドの後に複製される非表示のスライド数を設定する。総スライド数の半分以上の値を指定しておけばOK
https://garigaricode.com/swiper/

Controllerを使ったサムネイルを作る場合で、loopをしようする際は、、トップとサムネイル両方のloopedSlidesの値を揃えないといけない。

nestedbooleanfalse

正しいタッチイベントのインターセプトのために、Swiperでtrueに設定します。親機と同じ方向を使用するスワイパーにのみ使用します。

trueにすると、入れ子になったSwiper(つまり、Swiperの中でさらにSwiperを使っている時)のタッチイベントが正常に取れるようになる。
デフォルトではfalse。

noSwipingbooleantrue

noSwipingClassで指定されたクラスにマッチした要素に対するスワイプの有効化/無効化

trueだとnoSwipingClassで指定したクラスを持ったスライドはスワイプの操作が効かなくなる。
デフォルトではtrue。

noSwipingClassstring'swiper-no-swiping'

noSwipingの要素のcssクラスの指定

noSwipingがture前提。ここで指定したクラス名を持ったスライドはスワイプの操作が効かなくなる。.はいらない

noSwipingSelectorstring 

noSwipingClassの代わりに、スワイプを無効にする要素を指定することができます。例えば、'input' はすべての入力に対してスワイプを無効にします。

特定のセレクタの上ではスワイプを無効にしたい!って時に。スライド内で操作することがあるなら、これを使ってみるとユーザビリティが向上するかも。
デフォルトでは特になし。

normalizeSlideIndexbooleantrueNormalize slide index.

例えば、slidesPerGroupを3にしていてcenteredSlidesを使っている時に、1枚目が3枚目として認識されているのを、trueだと1枚目として認識してくれるようになる。
公式参考URL https://github.com/nolimits4web/Swiper/pull/1766
slidesPerViewとかslidesPerGroupを使用するならtrueにしてもいいんじゃないかな。
デフォルトではtrue。

trueだとslidesPerGroupとcenteredSlidesを使っているときに、
1枚目の認識がズレてしまっているのを修正してくれる
参考(https://webrandum.net/js-library-swiper/)

observeParentsbooleanfalse

Swiperの親要素のミューテーションも監視する必要がある場合は、trueに設定します。

スライドの親要素にもobserverが適応されるようになる。observerがtrueならこちらもtrueがいいと思う。

observeSlideChildrenbooleanfalse

Swiperスライドの子要素のミューテーションも見る必要がある場合は、trueに設定します。

スライドの子要素にもobserverが適応されるようになる。observerがtrueならこちらもtrueがいいと思う。

observerbooleanfalse

Swiperとその要素のMutation Observerを有効にするには、trueを設定します。この場合、Swiperは、そのスタイル(非表示/表示など)を変更したり、その子要素(スライドの追加/削除など)を変更したりするたびに更新(再初期化)されます。

スライド作成後にスタイルの変更やスライドの表示非表示を変更する時に、falseだと崩れるけど、スライドを初期化して対応するようになる。その分、少し重くなる印象。
デフォルトではfalse。

trueにするとSwiperのスタイルが変更されたり子要素を変更されるたびに再初期化される

onobject 

イベントハンドラーの登録

イベントの登録に使う。詳細はイベントに関する項目にて

passiveListenersbooleantrue

モバイルデバイスでのスクロールのパフォーマンスを向上させるため、可能な限りパッシブイベントリスナーがデフォルトで使用されます。しかし、e.preventDefaultを使用する必要があり、それに抵触する場合は、このパラメータを無効にしてください。

スマホでのパフォーマンスを高める。基本デフォルトでいいと思うけどe.preventDefaultを使用する場合は競合してしまうため、こちらをfalseにする必要がある。らしい。

preloadImagesbooleantrue

有効にすると、Swiperはすべての画像を強制的にロードします。

プリロード。事前にスライドで使う画像を読み込んでおくもの。
デフォルトではtrue。

preventClicksbooleantrue

スワイプ時にリンクを誤ってクリックしてしまうことを防ぐために、trueを設定します。

スワイプ中での不要なクリックを無効にできる。ユーザビリティ的にtrue推奨。
デフォルトではtrue。

preventClicksPropagationbooleantrue

スワイプ中のリンクに対するクリックイベントの伝搬を停止するには、trueを設定します。

スワイプ中のクリックイベントを無効にできる。ユーザビリティ的にtrue推奨。
デフォルトではtrue。

preventInteraction
OnTransition
booleanfalse

有効にすると、遷移中にスワイプやナビゲーション/ページネーションボタンでスライドを変更できなくなります。

スワイプしてる最中に別のスライドに移動することができなくなる。遷移アニメーションによっては便利。
デフォルトではfalse。

resistancebooleantrue

レジスタント・バウンズを無効にしたい場合は、falseに設定してください。

trueだと最後のスライドもしくは最初のスライドで次に行こうとする時に発生するバウンスアニメーションに抵抗力がつくようになる。
デフォルトではtrue。

resistanceRationumber0.85

このオプションでは、抵抗比をコントロールすることができます。

抵抗力(バウンスの量)を強めたり弱めたりできる。
デフォルトでは0.85。

resizeObserverbooleanfalse

有効にすると、(ブラウザでサポートされていれば)ResizeObserverを使用して、(ウィンドウのリサイズを監視する代わりに)コンテナのリサイズを検出します。

roundLengthsbooleanfalse
Trueを設定すると、通常の解像度の画面でテキストがぼやけないように、スライドの幅と高さの値を丸めることができます(通常の解像度の画面がある場合)。
trueにすると、中のテキストや画像をぼやけないように調整してくれる。
内部的なことで説明すると、.swiper-slideのwidthやheightで小数点以下がなくなる。切り上げなのか、切捨てなのか、四捨五入なのかはめんどくさかったので調べてないです。
通常はfalseで、ぼやける不具合が出た時に初めてtrueにするってした方がいいかも。あと、なんか不具合起きてる時になんとなくつけてみるとうまくいく時があるらしい(この使い方はあまりお勧めできないけれど)。
デフォルトではfalse。
runCallbacksOnInitbooleantrue

スイパーの初期化時にTransition/SlideChange/Start/Endイベントを発生させます。これらのイベントは、initialSlideが0でない場合や、ループモードを使用している場合に初期化時に発生します。

スワイパーを初期化した時にコールバックを発火させるかどうか。初期化というのはリセットもそうだけど、最初の読み込み時も含まれるし、ループをしている時に最後のスライドから最初のスライドに戻った時も発火する。
例えば、「slideChangeTransitionStart」が最初の読み込み時にも発火する。基本的にはtrueで問題ないと思う。
デフォルトではtrue。

setWrapperSizebooleanfalse

このオプションを有効にすると、プラグインはスワイパー・ラッパーの幅/高さをすべてのスライドの合計サイズと同じにします。フレックスボックスレイアウトに対応していないブラウザでは、互換性のための代替オプションとして使用されることがほとんどです。

.swiper-wrapperに全てのスライドの合計の幅(もしくは高さ)がpxでセットされる。width300pxのスライドが5枚の場合、.swiper-wrapperのwidthは1500pxになる。
デフォルトではfalse。

shortSwipesbooleantrue
ショートスワイプを無効にしたい場合は、falseに設定してください。
時間の短いスワイプを無効にする場合はfalseを設定する。基本デフォルト推奨。
simulateTouchbooleantrue

trueの場合、Swiperはタッチイベントのようなマウスイベントを受け付けます(クリック&ドラッグでスライドを変更することができます)。

trueだとタッチイベントをマウスイベントのように認識するようになる。スマホと仕様を変更するとかじゃない限り、falseにする意味はそんなない気がする。

slideActiveClassstring'swiper-slide-active'

現在アクティブなスライドのCSSクラス名

※クラスを変更することで、SwiperのCSSも変更されたクラスを反映させる必要があります。

※Swiper Angular/React/Svelte/Vueコンポーネントではサポートされていません。

アクティブになってるスライドにつくクラス。
デフォルトでは ‘swiper-slide-active’

slideBlankClassstring'swiper-slide-invisible-blank'

loopFillGroupWithBlankが有効な場合に、ループモードの塗りつぶしグループに追加される空白のスライドのCSSクラス名
※クラスを変更すると、SwiperのCSSも変更されたクラスを反映させる必要があります。
※Swiper Angular/React/Svelte/Vueではサポートされていません。

loopFillGroupWithBlankで生成される空白のスライドにつくクラス。
デフォルトでは’swiper-slide-invisible-blank’

slideClassstring'swiper-slide'

SlideのCSSクラス名
※クラスを変更すると、SwiperのCSSも変更されたクラスを反映させる必要があります。
※Swiper Angular/React/Svelte/Vueではサポートされていません。

各スライドにつくクラス。
デフォルトでは’swiper-slide’。

slideDuplicateActiveClassstring'swiper-slide-duplicate-active'

現在のアクティブなスライドを表す複製されたスライドのCSSクラス名
※クラスを変更すると、SwiperのCSSも変更されたクラスを反映させる必要があります。
※Swiper Angular/React/Svelte/Vueではサポートされていません。

アクティブになってる複数のスライドにつくクラス。

slideDuplicateClassstring'swiper-slide-duplicate'

ループモードで複製されるスライドのCSSクラス名
※クラスを変更すると、SwiperのCSSも変更されたクラスを反映させる必要があります。
※Swiper Angular/React/Svelte/Vueではサポートされていません。

loop設定時につくスライドのクラス。

slideDuplicateNextClassstring'swiper-slide-duplicate-next'

アクティブなスライドの次のスライドを表す複製されたスライドのCSSクラス名
※クラスを変更すると、SwiperのCSSも変更されたクラスを反映させる必要があります。
※Swiper Angular/React/Svelte/Vueではサポートされていません。

次のスライドで複数ある場合につくクラス。

slideDuplicatePrevClassstring'swiper-slide-duplicate-prev'複製されたスライドのCSSクラス名(アクティブなスライドの前のスライドを表す)
※クラスを変更すると、SwiperのCSSも変更されたクラスを反映させる必要があります。
※Swiper Angular/React/Svelte/Vueではサポートされていません。
slideNextClassstring'swiper-slide-next'

現在アクティブなスライドの直後に表示されるスライドのCSSクラス名
※クラスを変更すると、SwiperのCSSも変更されたクラスを反映させる必要があります。
※Swiper Angular/React/Svelte/Vueではサポートされていません。

次のスライドにつくクラス。

slidePrevClassstring'swiper-slide-prev'

現在アクティブなスライドの直前に表示されるスライドのCSSクラス名
※クラスを変更すると、SwiperのCSSも変更されたクラスを反映させる必要があります。
※Swiper Angular/React/Svelte/Vueではサポートされていません。

前のスライドにつくクラス。

slideToClickedSlidebooleanfalse

trueに設定し、任意のスライドをクリックすると、このスライドに遷移します。

スワイプ中にクリックした時、今の動きをキャンセルしてクリックした側のスライドに移動する。ゆっくりなスライダーでない限り、ユーザビリティ的にfalse推奨。

Controllerでサムネイル付きのスライダーを作る場合で、サムネイルをクリックすると該当スライダーに移動するという動きにするならtrueにしたりする

slideVisibleClassstring'swiper-slide-visible'現在表示されているスライドのCSSクラス名
※ クラスを変更すると、SwiperのCSSも変更されたクラスを反映させる必要があります。
※ Swiper Angular/React/Svelte/Vueではサポートされていません。
slidesOffsetAfternumber0

コンテナの最後(すべてのスライドの後)に追加のスライドオフセットを(pxで)追加する。

全てのスライドのうち最後のスライドに追加で余白を設ける。余白は1つ分のスライドとして認識される。ピクセル。
デフォルトでは0。

slidesOffsetBeforenumber0

コンテナの最初(すべてのスライドの前)に、追加のスライドオフセットを(px単位で)追加します。

全てのスライドの前に追加で余白を設ける。余白は1つ分のスライドとして認識される。それぞれのスライドは余白分ずれて見える。ピクセル。

slidesPerColumnnumber1

多列レイアウトの場合、1列あたりのスライド数
  ※ slidesPerColumn > 1 は、ループモード(loop: true)との互換性がありません。

列ごとのスライド数。独自のスライドの動きと合わせたりすると面白い。
デフォルトでは1。
slidesPerView:autoとslidesPerColumnは一緒に設定してはいけない。

slidesPerColumnFill'row' | 'column''column'

「column」または「row」を指定します。スライドがどのように行を埋めるかを、列または行ごとに定義します。

slidesPerColumnなどを実装した際に、どのようにして埋めるかを設定できる。列をベースに埋めるか、行をベースに埋めるか。
デフォルトではcolumn。

slidesPerColumnFill: 'column'を指定した時、またはslidesPerColumnFillを省略した時は、

こういう並び順になります。

slidesPerColumnFill: 'row'を指定した時は、

こういう並び順。

参考(https://garigaricode.com/swiper_multirow/)

こうしたい時はどうすればいいかについても解説。

slidesPerGroupnumber1

グループスライドを定義して有効にするために、スライドの数を設定します。slidesPerView > 1で使用すると便利です。

複数のスライドを1つにまとめる。スワイプした際にグループで囲った全てが同時にスライドする。実質slidesPerViewが2以上前提な気がする。
デフォルトでは1。

slidesPerGroupSkipnumber0

このパラメータは以下のように動作します。slidesPerGroupSkipが0(デフォルト)の場合、グループ化から除外されるスライドはなく、結果としてこの変更がない場合と同じ動作になります。

slidesPerGroupSkipが1以上の場合、最初のX枚のスライドは単一のグループとして扱われますが、それ以降のすべてのスライドはslidesPerGroupの値によってグループ化されます。

slidesPerGroupでグループ化したくないスライドを除外する。
指定した数字以下のスライドはグループ化されない。特定のスライドってわけじゃなくて、数字以下全てってなるから使い勝手は微妙かもしれない。

slidesPerView

number | 

'auto'

1

1ビューあたりのスライド数(スライダーのコンテナに同時に表示されるスライド)。
  ※ slidePerView: 'auto' で使用する際に、loop: trueを指定した場合は、loopedSlidesパラメータにループするスライドの数を指定する必要があります(重複)。
  ※ slidesPerView: 'auto'は、slidesPerColumn > 1の場合、多列モードとは互換性がありません。

1画面で見えるスライドの数を設定できる。loopを設定したい場合は、一緒にloopedSlidesの設定をする必要がある。slidesPerView:autoとslidesPerColumnは一緒に設定してはいけない。
また、effectで”slide”と”coverflow”以外では動作しない。
デフォルトでは1。

spaceBetweennumber0

スライド間の距離(単位:px)。
 ※ spaceBetweenを渡しているSwiperに入る要素に「margin」のcssプロパティを使用すると、ナビゲーションが動作しない場合があります。

speednumber300スライド間の遷移時間(単位:ms)
swipeHandler

CSSSelector | 

HTMLElement 

null

null

スワイプ時に唯一利用可能なハンドラとして動作するページネーションを持つコンテナのCSSセレクタまたはHTML要素の文字列

ここで指定したクラス上、もしくはタグ上でしかスワイプ操作が効かなくなる。
デフォルトでは’null’。

thresholdnumber0

しきい値(単位:px)。「タッチ距離(touch distance)」がこの値よりも低い場合、スワイパーは動きません。

しきい値。この数値よりスワイプ距離が短い場合、スライダーは動かない。ピクセル。

touchAnglenumber45

タッチ動作のトリガーとなる許容角度(度)

スワイプを認識する角度を設定できる。スライドのサイズが大きいなら数字を大きくした方がいい。

touchEventsTarget'container' | 

'wrapper'

'container'

タッチイベントをリッスンする対象となる要素。「container」(swiper-containerのタッチ・イベントを受け付ける)または「wrapper」(swiper-wrapperのタッチ・イベントを受け付ける)のいずれかです。

containerもしくはwrapper。タッチイベントの対象をどちらにするか選択できる。基本containerでいいと思う。

touchMoveStopPropagationbooleanfalse

有効にすると、"touchmove "の伝搬が停止します。

trueにすることでイベントのバブリングを防ぐ。デフォルト推奨。

イベントが発生したとき、親やさらに先の要素にも同じイベントが発生する「イベントバブリング」。バグをなくし、思い通りに制御できるようになるために、しっかり理解しましょう。

参考

参考2

touchRationumber1

しきい値。どのくらいスワイプしたら次のスライドに行くかを設定できる。数字が大きければ少しのスワイプで次に行く。スライドのサイズに応じて設定した方がいい。

touchReleaseOnEdgesbooleanfalse

スライダーの端の位置(始点、終点)でタッチイベントを解除し、さらにページをスクロールできるようにする。

trueだとスライダーをスワイプでスライドさせている時にも画面がスクロールされるようになる。
フルスクリーンとかに。
デフォルトではfalse。

trueだとスワイプ時も画面がスクロールできるようになる

touchStartForce
PreventDefault
booleanfalse

touchstartmousedown)イベントのデフォルトを常に防ぐように強制する。

touchstart(mousedown)のイベントをallowTouchMove:falseの時でも無効にするかどうか。
allowTouchMoveを設定する時に場合によっては設定することがあるかも?

touchStartPreventDefaultbooleantrue

無効にした場合、タッチスタート(マウスダウン)イベントは防止されません。

touchstart(mousedown)のイベントのバブリングを防ぐ。デフォルト推奨。

uniqueNavElementsbooleantrue

有効(デフォルト)で、ナビゲーション要素のパラメータが文字列(「.pagination」など)として渡された場合、Swiperは最初に子要素を介してそのような要素を探します。ページネーション、prev/nextボタン、スクロールバー要素に適用されます。

paginationやnext-button等、コントロール系とスライドを自動で結びつける。1個目のpaginationをクリックしたら1番目のスライドに行く、といった動作。true推奨。

updateOnImagesReadybooleantrue

有効にすると、すべてのインナーイメージ(タグ)が読み込まれた後、Swiperが再初期化されます。必須 preloadImages: true

preloadImagesがture前提。画像が全て読み込んだらスライドを初期化する。true推奨。

updateOnWindowResizebooleantrue

ウィンドウのサイズを変更すると、Swiperはスライドの位置を再計算する(オリエンテーション変更)。

swiperをリサイズした時にサイズ・位置を再計算するかどうか。true推奨。

urlstring | nullnull

サーバーサイドでレンダリングされ、ヒストリーが有効になっている場合のアクティブなスライド検出に必要です。

userAgent / url
文字列。
この2つはSSR(サーバーサイドレンダリング)に関するオプション。
SSRはざっくり言うとサーバー側でHTMLを作ってユーザーに渡すもので、読み込みが早くなる技術の1つ。
それを使う時のサーバーとユーザーの橋渡しとしてこの2つのオプションがある。
具体的にどうするかは自分も現状だとわからない

userAgentstring | nullnull

userAgent文字列。サーバーサイドでレンダリングする際のブラウザ/デバイスの検出に必要です。

virtualTranslatebooleanfalse

このオプションを有効にすると、 スワイパーは通常通り操作されますが、 スワイパーは動きませんし、 ラッパー上のリアル・トランスレート値も設定されません。カスタム・スライド・トランジションを作成する必要がある場合に便利です。

trueにすると.swiper-wrapperのtransformが削除される。普通にスッと移動するスライドじゃなくて、凝ったアニメーションでの遷移をしたい場合に使用する。CSS・JSでのアニメーションの知識が必要。

watchOverflowbooleanfalse

有効にすると、Swiperは無効になり、スライドに十分な数のスライドがない場合、ナビゲーションボタンを隠します。

スライドの枚数がスライダー生成の条件に満たさない時(わかりやすい話、1枚しかスライドがないとか)、コントロール関係を削除してスライド機能もなくす。ワードプレスに組み込むときとかtrueにしていいと思う。

watchSlidesProgressbooleanfalse

この機能を有効にすると、各スライドの進捗状況が計算されます。

進捗状態を計算するオプション、らしい。でもその数字がどこで取れるのかわからない。自分の中では、後述するwatchSlidesVisibilityのオプションの前提オプションって認識。

watchSlidesVisibilitybooleanfalse

watchSlidesProgress を有効にしてください。このオプションを有効にすると、ビューポート内のスライドに追加の可視クラスが表示されます。

watchSlidesProgressがtrue前提。trueにすると画面に表示されているスライドにswiper-slide-visibleのクラスが追加される。複数表示されている場合は、そのすべてにこのクラスがつく。
これで複雑な動きどうこうというより、検証用のオプション。

widthnumber | nullnullスワイパーの幅(単位:px)。 パラメータは Swiper の幅を強制的に変更します。Swiperが隠されているときにSwiperを初期化する場合や、SSRおよびTest環境でSwiperを正しく初期化する場合にのみ有用です。

Setting this parameter will make Swiper not responsive

スライドの幅を指定する…んだけど、応答しなくなるらしい。バグなのか謎。個人的には設定しないことを推奨。幅を固定したい場合はcssでやった方がいいかも。
デフォルトでは何も設定されていない。100%みたいな感じ(厳密には少し違うけど)。

wrapperClassstring'swiper-wrapper'

スライドのラッパーのCSSクラス名。
クラスを変更することで、SwiperのCSSを変更して、変更したクラスを反映させる必要があります。

Not supported in Swiper Angular/React/Svelte/Vue

    

Methods & Properties

スライダーを初期化すると、初期化されたインスタンスが変数(上記の例ではswiper変数)に格納され、便利なメソッドやプロパティが用意されます。:

Properties
swiper.$elDom7Array

スライダーコンテナのHTML要素を持つDom7要素。バニラのHTML要素を取得するにはswiper.elを使用します。

スライダーのコンテナのHTML要素を取得できる。クラス追加したりcss当てたり。

mySwiper.$el.style.opacity=0.5;

swiper.$wrapperElDom7Array

スライダーのラッパー HTML 要素を持つ Dom7 要素。バニラHTML要素を取得するにはswiper.wrapperElを使用します。

スライダーのラッパーを取得できる。クラス追加したりcss当てたり。

1
mySwiper.$el.style.opacity=0.5;
swiper.activeIndexnumber

現在アクティブなスライドのインデックス番号

ループモードでは、ループ/複製されたスライドの数だけ、アクティブなインデックスの値が常にシフトすることに注意してください。

現在表示されてるスライドが何番目かを返す。
if(mySwiper.activeIndex == 3){}とかで現在表示されてるスライドに対しての分岐が可能。
ループ設定をしている場合、コピーした分もカウントに含まれる。

swiper.allowSlideNextboolean

このプロパティにfalse/trueを割り当てることで、次のスライドへのスライド機能を無効/有効にすることができます。

swiper.allowSlidePrevboolean

このプロパティにfalse/trueを割り当てることで、前のスライドへのスライド機能を無効/有効にすることができます。

swiper.allowTouchMoveboolean

このプロパティに false / true を設定することで、マウスで掴んだり、指で触れたりしたときにスライダーを動かす機能を無効にしたり、有効にしたりすることができます。

swiper.animatingboolean

スイパーが移行中(スライド中)の場合はtrue
※transition=スライド中くらいの意味。

console.log(mySwiper.animating);

swiper.clickedIndexnumber

最後にクリックされたスライドのインデックス番号

swiper.clickedSlideHTMLElement

最後にクリックされたスライドへのリンク (HTMLElement)

最後にクリックしたスライド(HTML)を返す。クリックしたスライドがない場合はエラーが出る(スライダーに影響が出ることはないけど、コンソールにはエラーがでる)。

mySwiper.clickedSlide.style.height='400px';

swiper.elHTMLElement

スライダーコンテナのHTML要素

swiper.heightnumber

コンテナの height

swiper.isBeginningboolean

スライダーが最も "左 "または "上 "にある場合はtrue

今のスライドが横スライドであるなら一番左のときに、縦スライドであるなら一番上のときにtrueを返す。

swiper.isEndboolean

スライダーが最も "右 "または "下 "にある場合はtrue

swiper.paramsSwiperOptions

初期化されたパラメータが渡されたオブジェクト

パラメータを追加したり、上書きするときに。

1
2
mySwiper.params.speed = 500;
mySwiper.params.autoplay.delay=500;
swiper.previousIndexnumber

前にアクティブだったスライドのインデックス番号

1
console.log(mySwiper.previousIndex);

前回のスライドが何番目かを返す。
前回のスライドが存在しない場合は今のスライドの番号を返す。

swiper.progressnumber

現在のwrapper translateの進捗状況(0から1)

1
console.log(mySwiper.progress);

進行度について返してくれる。
例えば、スライドが10枚あるとしたら、1枚目のときは0.1、3枚目のときは0.3、8枚目のときは0.8、10枚目のときは1を返す。

swiper.realIndexnumber

ループモードで重複したスライドを考慮して、現在アクティブなスライドのインデックス番号

現在表示されてるスライドが何番目かを返す。
if(mySwiper.realIndex == 3){}とかで現在表示されてるスライドに対しての分岐が可能。
ループ設定をしていても、コピーした分もカウントに含まれない。

swiper.slidesDom7Array

Dom7のスライドHTML要素の配列のようなコレクション。特定のスライドのHTML要素を取得するには、swiper.slides[1]を使用します。

console.log(mySwiper.slides.length);
mySwiper.slides[0].style.opacity=0.5;
 

スライドの配列を取得できる。
mySwiper.slides.lengthでスライドの枚数を数えられる。
mySwiper.slides[0]で最初のスライドにあれこれできる。

swiper.touchesobject

以下のタッチイベントのプロパティを持つオブジェクトです。

  • swiper.touches.startX
  • swiper.touches.startY
  • swiper.touches.currentX
  • swiper.touches.currentY
  • swiper.touches.diff

タッチした位置やクリックした位置を取得できる。

swiper.translatenumber

ラッパー・トランスレートの現在の値
※translate=CSSのtranslate(x,y)と同じくらいのイメージ

初期状態からどのくらい移動したかのpxを返す。どんどんマイナスで増えてく。

swiper.widthnumber

コンテナの横幅

swiper.wrapperElHTMLElement

WrapperのHTML element

swiper.defaultsSwiperOptions

Swiper default options

swiper.extendedDefaultsSwiperOptions

Object with global Swiper extended options
グローバルSwiper拡張オプション付きオブジェクト

Methods
swiper.addSlide(indexslides)

必要なインデックスに新しいスライドを追加します。スライドは、新しいスライドを含む HTML 要素または HTML 文字列、またはそのようなスライドを含む配列になります。:

特定の位置にスライドを追加する。下の例だと1番目にその後のスライドを追加している。

addSlide(1, '<div class="swiper-slide">Slide 10"</div>')

addSlide(1, [
 '<div class="swiper-slide">Slide 10"</div>',
 '<div class="swiper-slide">Slide 11"</div>'
]);
swiper.appendSlide(slides)

新しいスライドを最後に追加します。スライドは、例えば、新しいスライドを含むHTML要素やHTML文字列、またはそのようなスライドを含む配列になります:

appendSlide('<div class="swiper-slide">Slide 10"</div>')

appendSlide([
 '<div class="swiper-slide">Slide 10"</div>',
 '<div class="swiper-slide">Slide 11"</div>'
]);
swiper.attachEvents()

Attach all events listeners again

イベントリスナーが働くようになる。detachEventsで無効にしたあと、これで元に戻すとか

swiper.changeDirection(directionneedUpdate)

スライダーの向きを水平から垂直に、そして元に戻す.

  • direction - 'horizontal' | 'vertical' - New direction. 指定がない場合は、自動的に反対方向に変更されます。
  • needUpdate - boolean - swiper.update()を呼び出します。デフォルトはtrue

スライダーの方向を水平から垂直に変更する。
()の中に’horizontal’か’vertical’を入れればその方向になるが、何も入れない場合は今とは違う方が反映される。

swiper.destroy(deleteInstancecleanStyles)

スライダーのインスタンスを破棄し、すべてのイベントリスナーを切り離す

スライダーとしての全ての機能を削除する。スライドもしなくなるし、イベントリスナーも動かない。

  • deleteInstance - boolean - Swiperのインスタンスを削除しないようにするには、これをfalseに設定します(デフォルトではtrueです)。
  • cleanStyles - boolean - これをtrueに設定すると(デフォルトではtrue)、すべてのカスタム・スタイルがスライド、ラッパー、コンテナから削除されます。Swiperを破壊して、新しいオプションや別の方向性で再起動する必要がある場合に便利です。
swiper.detachEvents()

すべてのイベントリスナーが働かなくなる。

swiper.disable()

Swiperを無効にします(有効になっていた場合)。Swiperを無効にすると、すべてのナビゲーション要素が非表示になり、すべてのイベントや相互作用に反応しなくなります

swiper.emit(eventargs)

Fire event on instance
インスタンスでのイベント発生??

swiper.enabled()

スワイパーの有効化(無効になっていた場合)

swiper.getBreakpoint(breakpoints) 
swiper.getTranslate()

swiper wrapper css3 transform translateの現在の値を取得します。

スライドの現在位置(一番左から計算してのpx)を取得する。

swiper.init()

Initialize slider

swiper.off(eventhandler)

Remove event handler

イベントの中の特定のイベントリスナーだけオフにしたい時に使用する。

swiper.offAny(handler)

すべてのイベントで発生するイベントリスナーの削除

swiper.on(eventhandler)

イベントハンドラの追加

イベントを追加する。

var mySwiper = new Swiper('.swiper-container', {
  // ...
};
mySwiper.on('slideChange', function () {
  console.log('slide changed');
});
swiper.onAny(handler)

Add event listener that will be fired on all events
すべてのイベントで実行されるイベントリスナーの追加

swiper.once(eventhandler)

Add event handler that will be removed after it was fired

1つ前のonと違い、1回だけ実行するイベントを追加するもの。

swiper.prependSlide(slides)

新しいスライドを冒頭に追加します。スライドは、新しいスライドを含むHTML要素またはHTML文字列、またはそのようなスライドを含む配列になります。:

prependSlide('<div class="swiper-slide">Slide 0"</div>')

prependSlide([
 '<div class="swiper-slide">Slide 1"</div>',
 '<div class="swiper-slide">Slide 2"</div>'
]);
swiper.removeAllSlides()

Remove all slides

swiper.removeSlide(slideIndex)

選択されたスライドを削除します。slideIndexには、削除するスライドのインデックスを指定した数値か、インデックスを指定した配列を指定します。.

removeSlide(0); // remove first slide
removeSlide([0, 1]); // remove first and second slides
removeAllSlides();    // Remove all slides
swiper.setGrabCursor()

カーソルのグラブを有効にする。

swiper.setProgress(progressspeed)

スワイパーの移動量を設定します(0~1)。
0 - 最初のスライドでの初期位置(オフセット)、
1 - 最後のスライドでの最大位置(オフセット)です。

  • progress - number - スワイパー移動の進捗状況(0~1)。
  • speed - number - Transition duration (in ms).
swiper.setTranslate(translate)

swiper wrapperのカスタムcss3トランスフォームのtranslate値を設定する

1
mySwiper.setTranslate(-300);

スライドの現在位置(一番左から計算してのpx)から移動する。

swiper.slideNext(speedrunCallbacks)

次のスライドに移行します

  • speed - number - Transition duration (in ms).
  • runCallbacks - boolean - これをfalseに設定すると(デフォルトではtrue)、トランジションはトランジションイベントを生成しません。

次のスライドに行く。speedとcallbacksは任意なのでmySwiper.slideNext()で動く。
ボタンのonclickでこれ使うとか。

swiper.slidePrev(speedrunCallbacks)

前のスライドへのトランジションを実行します。

  • speed - number - Transition duration (in ms).
  • runCallbacks - boolean -これをfalseに設定すると(デフォルトではtrue)、トランジションはトランジションイベントを生成しません。.
swiper.slideReset(speedrunCallbacks)

スワイパーの位置を現在のアクティブなスライドにリセットし、「speed」パラメータと同じ時間が続く.

  • speed - number - Transition duration (in ms).
  • runCallbacks - boolean - これをfalseに設定すると(デフォルトではtrue)、トランジションはトランジションイベントを生成しません。.

現在アクティブになっているスライドに位置をリセットする。
アクティブなスライドというのはアクティブのクラスがついているスライドのこと。
freeMode使用時に使うものかもしれない。

swiper.slideTo(indexspeedrunCallbacks)

「index」パラメータに設定されたインデックス番号のスライドに、「speed」パラメータに設定された時間で、トランジションを実行します。

  • index - number - Index number of slide.
  • speed - number - Transition duration (in ms).
  • runCallbacks - boolean - これをfalseに設定すると(デフォルトではtrue)、トランジションはトランジションイベントを生成しません。.

指定した順番のスライドに移動する。indexだけ必須。

loopのときは、.slideToLoop( )

swiper.slideToClosest(speedrunCallbacks)

「speed」パラメータと同じ時間だけ、スワイパーの位置を最も近いスライド/スナップポイントにリセットします。

  • speed - number - Transition duration (in ms).
  • runCallbacks - boolean - これをfalseに設定すると(デフォルトではtrue)、トランジションはトランジションイベントを生成しません。

現在の位置から見て一番近いスライドをアクティブにしてその位置に対してスナップする。
freeMode使用時に使うものかもしれない。

swiper.slideToLoop(indexspeedrunCallbacks)

.slideTo( )と同じことをしますが、有効化されたループと一緒に使われた場合のことです。つまり、このメソッドは、渡されたインデックスに一致するrealIndexを持つスライドにスライドします。

  • index - number - Index number of slide.
  • speed - number - Transition duration (in ms).
  • runCallbacks - boolean - これをfalseに設定すると(デフォルトではtrue)、トランジションはトランジションイベントを生成しません。.
1
mySwiper.slideToLoop(3);

基本、slideToと同じ。loop設定時はこっちのがいいかも

swiper.translateTo(translatespeedrunCallbackstranslateBounds)

スイパラッパーのカスタムcss3トランスフォームのtranslate値をアニメーション化する

  • translate - number - Translate value (in px)
  • speed - number - Transition duration (in ms)
  • runCallbacks - boolean - これをfalseに設定すると(デフォルトではtrue)、トランジションはトランジションイベントを生成しません。
  • translateBounds - boolean - これをfalseにすると(デフォルトではtrue)、トランジションの値がminとmaxを超えてしまうことがあります。

スライドのアニメーションを実行する。
一部のスライドだけ違うアニメーションをしたい時に設定するもの。

swiper.unsetGrabCursor()

グラブカーソルの解除

swiper.update()

スライドを手動で追加/削除したり、非表示/表示にしたり、SwiperでカスタムのDOM変更を行った後に呼び出す必要があります。 このメソッドには、個別に使用できる以下のメソッドのサブコールも含まれています。:

swiperのオプション以外でスライドを削除したりした場合はこれを実行してスライダーが正常に動くようにする。

swiper.updateAutoHeight(speed)

autoHeightが有効な場合、'speed'パラメータと同じ時間だけ、スワイパーの高さを強制的に更新します。

  • speed - number - Transition duration (in ms).

autoHeightがtrueになっている場合、これを実行すると高さが更新される。
jsでスライドの中身を入れ替えたりした時に使うかもしれない。

swiper.updateProgress()

スワイパーの進捗状況を再計算する

swiper.updateSize()

スワイパーコンテナのサイズを再計算

swiper.updateSlides()

スライドの枚数とオフセットを再計算します。JavaScriptでスライドを追加・削除した後に便利です。

swiper.updateSlidesClasses()

スライドやbulletsでアクティブ/プレヴュー/ネクストのクラスを更新する

swiper.extendDefaults(options)

Extend global Swiper defaults

swiper.use(modules)

Installs modules on Swiper in runtime

Events

Swiperには、便利なイベントがたくさん付いています。イベントは2つの方法で割り当てることができます。

  1. Using on parameter on swiper initialization:
const swiper = new Swiper('.swiper-container', {
  // ...
  on: {
    init: function () {
      console.log('swiper initialized');
    },
  },
});
  1. Using on method after swiper initialization.
const swiper = new Swiper('.swiper-container', {
  // ...
});
swiper.on('slideChange', function () {
  console.log('slide changed');
});

イベントハンドラ内のthisキーワードは、常にSwiperインスタンスを指すことに注意してください。

NameArgumentsDescription
activeIndexChange(swiper)

アクティブなインデックスの変更時にイベントが発生

afterInit(swiper)

初期化直後にイベントが発生

beforeDestroy(swiper)

Swiperが破壊される直前にイベントが発生。

beforeInit(swiper)

初期化の直前にイベントが発生

beforeLoopFix(swiper)

イベントは "ループフィックス "の直前に発生します。

loopを設定していた場合、次のスライドに行く時に実行される。

beforeResize(swiper)

リサイズハンドラの前にイベントが発生する

スライダーにリサイズが発生する直前に実行される。

beforeSlideChangeStart(swiper)

スライドチェンジが始まる前に発生するイベント

beforeTransitionStart(swiper, speed, internal)

トランジション開始前にイベントが発生

スライドアニメーションが開始されたときに実行される。

breakpoint(swiper, breakpoint
Params)

ブレークポイントの変更時にイベントが発生する

changeDirection(swiper)

方向転換時(水平→垂直など)にイベントが発生する

click(swiper, event)

ユーザーがSwiperをクリック/タップするとイベントが発生します。引数としてtouchendイベントを受け取ります。

destroy(swiper)

スワイパーをdestroyしたときに実行される

doubleClick(swiper, event)

イベントは、ユーザーがSwiperをダブルクリック/タップしたときに発生します。

doubleTap(swiper, event)

ユーザーがSwiperのコンテナをダブルタップするとイベントが発生します。引数としてtouchendイベントを受け取る

fromEdge(swiper)

イベントは、Swiperが開始位置または終了位置から移動したときに発生します。

最初のスライドもしくは最後のスライドから移動するときに実行される。

imagesReady(swiper)

イベントはすべてのインナーイメージが読み込まれた直後に発生します。 updateOnImagesReadyも有効にしてください。

スライダーの画像が全て読み込まれたときに実行される。

init(swiper)

スワイパーの初期化後、すぐに発火する。

swiper.on('init')構文では、init: falseパラメータを設定した場合にのみ動作することに注意してください。

const swiper = new Swiper('.swiper-container', {
  init: false,
  // other parameters
});
swiper.on('init', function() {
 // do something
});
// init Swiper
swiper.init();
// Otherwise use it as the parameter:
const swiper = new Swiper('.swiper-container', {
  // other parameters
  on: {
    init: function () {
      // do something
    },
  }
});
loopFix(swiper)

イベントは "ループフィックス "後に発生します。

loopを設定していた場合、次のスライドに行く時に実行される。
beforeLoopFixより後に実行される。

momentumBounce(swiper)

勢いよく跳ねた時(一番最後のスライドに行った時にバウンスする感じのアニメーションが起きる)にイベントが発生する。

freeModeMomentumBounce: trueのとき

observerUpdate(swiper)

オブザーバーが有効になっていて、DOMの変異を検出するとイベントが発生します。

observerがtrueになっていて、observerが実行される時にこれも実行される。

orientationchange(swiper)

向きが変わったときにイベントが発生する(例:横向き→縦向き)

progress(swiper, progress)

イベントはSwiperの進捗状況が変更されたときに発生します。引数として、常に0から1の進捗状況を受け取ります。

1
2
3
progress: function(progress){
  console.log(progress);
},

swiperの進捗を読んでくれる。

reachBeginning(swiper)

イベントはSwiperが最初(初期位置)に到達したときに発生します。

reachEnd(swiper)

イベントは、Swiperが最後のスライドに到達したときに発生します。

realIndexChange(swiper)

現在表示されてるスライドのインデックスの変化でイベントが発生する

resize(swiper)

イベントはウィンドウのリサイズ時に、swiperのonresize操作の直前に発生します。

スライダーにリサイズが発生したときに実行される。

setTransition(swiper, transition)

イベントは、スワイパーがアニメーションを開始するたびに発生します。現在の遷移時間(ms)を引数として受け取ります。

setTranslate(swiper, translate)

イベントは、スイーパーのラッパーの位置が変わったときに発生します。現在の翻訳値を引数として受け取ります。

.swiper-wrapperのtransformの数値が変更されたときに実行される。

slideChange(swiper)

現在のアクティブなスライドが変更されるとイベントが発生します。

スライドが変更されたときに実行される。

slideChangeTransitionEnd(swiper)

イベントは、他のスライド(次または前)へのアニメーションの後に発生します。

次のスライドに行く際、スライドアニメーションが終了されたときに実行される

slideChangeTransitionStart(swiper)

イベントは、他のスライド(次または前)へのアニメーションの開始時に発生します。

次のスライドに行く際、スライドアニメーションが開始されたときに実行される。

slideNextTransitionEnd(swiper)

slideChangeTransitionEnd "と同じですが、"forward "方向のみです。

後の方のスライドへのアニメーションが終了されたときに実行される。
最初のスライドから2番目のときは実行されるけど、2番目から最初のスライドのときは実行されない。

slideNextTransitionStart(swiper)

Same as "slideChangeTransitionStart" but for "forward" direction only

後の方のスライドへのアニメーションが開始されたときに実行される。
最初のスライドから2番目のときは実行されるけど、2番目から最初のスライドのときは実行されない。

slidePrevTransitionEnd(swiper)

slideChangeTransitionEnd "と同じですが、"backward "方向のみです。

前の方のスライドへのアニメーションが終了されたときに実行される。
最初のスライドから2番目のときは実行されないけど、2番目から最初のスライドのときは実行される。

slidePrevTransitionStart(swiper)

slideChangeTransitionStart "と同じですが、"backward "方向のみです。

slideResetTransitionEnd(swiper)

スライドを現在アクティブになっているスライドに位置をリセットするアニメーションの最後にイベントが発生する

slideResetTransitionStart(swiper)

イベントは、スライドを現在アクティブになっているスライドに位置をリセットするアニメーションの開始時に発生します。

sliderFirstMove(swiper, event)

イベントは最初のタッチ/ドラッグの動きで実行されます。

sliderMove(swiper, event)

イベントは、ユーザーがSwiperにタッチして指を動かしたときに発生します。touchmoveイベントを引数として受け取ります。

slidesGridLengthChange(swiper)

スライドグリッド(の数など?)が変更されたときに発生するイベント

(おそらく)Slides Grid=spaceBetween, slidesPerView, slidesPerColumn, slidesPerColumnFill, slidesPerGroup, slidesPerGroupSkip, centeredSlides, centeredSlidesBounds, slidesOffsetBefore, slidesOffsetAfter, normalizeSlideIndex, centerInsufficientSlides

slidesLengthChange(swiper)

スライドの枚数が変更されるとイベントが発生する

snapGridLengthChange(swiper)

スナップグリッドが変更されるとイベントが発生する

snapIndexChange(swiper)

スナップインデックスの変更時に発生するイベント

tap(swiper, event)

ユーザーがSwiperをクリック/タップするとイベントが発生します。引数としてtouchendイベントを受け取ります。

toEdge(swiper)

イベントはSwiperが開始位置または終了位置に行ったときに発生します。

最初のスライドもしくは最後のスライドに移動したときに実行される。

touchEnd(swiper, event)

ユーザーがSwiperを離すとイベントが発生します。引数としてtouchendイベントを受け取ります。

指(クリック)を離すと実行される。

touchMove(swiper, event)

ユーザーがSwiperにタッチして指を動かしたときにイベントが発生します。touchmoveイベントを引数として受け取ります。

タッチした後指(カーソル)を動かす度に実行される。

touchMoveOpposite(swiper, event)

イベントは、ユーザーがSwiperにタッチして指を動かしたときに、directionパラメータと反対の方向に発射されます。touchmoveイベントを引数として受け取ります。

指(カーソル)を動かしたけどスライドが動かなかった際に実行される。

touchStart(swiper, event)

イベントはユーザーがSwiperにタッチしたときに発生します。引数としてtouchstartイベントを受け取ります。

タッチを開始したときに実行される。

transitionEnd(swiper)

遷移後にイベントが発生します。

スライドアニメーションが終了されたときに実行される。

transitionStart(swiper)

イベントはトランジションの開始時に発生します。

スライドアニメーションが開始されたときに実行される。

update(swiper)

イベントはswiper.update()の呼び出し後に発生します。

Modules

NameTypeDefaultDescription
navigation

NavigationOptions | 

boolean

 

Object with navigation parameters

const swiper = new Swiper('.swiper-container', {
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
});
{ //navigation: {}の中身
disabledClassstring'swiper-button-disabled'

ナビゲーションボタンが無効になった時にCSSクラス名を追加

次のスライドが無いときに、nextElで設定したdivにクラスがつく。
また、前のスライドが無いときに、prevElで設定したdivにクラスがつく。
デフォルトであるから、そんなにいじる理由もない気はする。2つスライダー置いてるときとか?
デフォルトでは’swiper-button-disabled’

hiddenClassstring'swiper-button-hidden'

ナビゲーションボタンが非表示になったときに、CSSクラス名を追加する

hideOnClickがtrue前提。薄くなったナビゲーションにつくクラスを指定できる。

hideOnClickbooleanfalse

スライダーのコンテナをクリックした後、ナビゲーションボタンの表示を切り替える

trueだと、次のスライドが無いときに、nextElで設定したHTMLが薄くなる。
また、前のスライドが無いときに、prevElで設定したHTMLが薄くなる。

lockClassstring'swiper-button-lock'

ナビゲーションボタンが無効の場合にCSSクラス名を追加

ナビゲーションがオプションによって無効にされている時につくクラス。を指定できる。

nextEl

CSSSelector | 

HTMLElement | null

null

クリックすると "next "ボタンのように動作する要素のCSSセレクタまたはHTML要素の文字列

prevEl

CSSSelector | 

HTMLElement | null

null

クリックすると "prev "ボタンのように動作する要素のCSSセレクタまたはHTML要素の文字列

}
Properties
swiper.navigation.nextElHTMLElement

HTMLElement of "next" navigation button

次へボタンのHTMLを取得できる。

swiper.navigation.prevElHTMLElement

HTMLElement of "previous" navigation button

前へボタンのHTMLを取得できる。

Methods
swiper.navigation.destroy()

Destroy navigation(破棄する)

swiper.navigation.init()

Initialize navigation(初期化する)

swiper.navigation.update()

Update navigation buttons state (enabled/disabled)

ナビゲーションの状態を更新する。

NameArgumentsDescription
navigationHide(swiper)

イベントはナビゲーションの非表示時(hide)に発生します。

navigationShow(swiper)

イベントはナビゲーション表示時(show)に発生します。

Pagination

Pagination Parameters

NameTypeDefaultDescription
paginationPagination
Options | 
boolean
 

Object with navigation parameters

const swiper = new Swiper('.swiper-container', {
  pagination: {
    el: '.swiper-pagination',
    type: 'bullets',
  },
});
{ // pagination: {}の中身↓
bulletActiveClassstring'swiper-pagination-bullet-active'

現在アクティブなページネーションのbulletのCSSクラス名

(type:bulletsだけ???)←試してみる

アクティブなページネーションのクラスを指定できる。

bulletClassstring'swiper-pagination-bullet'

CSS class name of single pagination bullet

ページネーションのクラスを指定できる。

bulletElementstring'span'

ページネーションの箇条書きを表現するためのHTMLタグを定義します。bulletsページネーションタイプのみ。

ページネーションを構成するタグを選択できる。liとかにしたいなら。

EX) bulletElement: 'span'

clickablebooleanfalse

trueの場合、ページネーションボタンをクリックすると、該当するスライドに遷移します。箇条書きのページネーションの場合のみ

ページネーションをクリックしたら、それに適したスライドに移動する。
デフォルトでtrueでも良い気が・・・。

clickableClassstring'swiper-pagination-clickable'

clickableをtrueにしたときにつくクラス名。

currentClassstring'swiper-pagination-current'

type: 'fraction' のページネーションにおいて、現在アクティブなインデックスを持つ要素のCSSクラス名

typeがfractionのときの現在のページ数側の数字につくクラス。

dynamicBulletsbooleanfalse

多くのスライドで箇条書きのページネーションを使用している場合に有効です。これにより、同時にいくつかの箇条書きを表示することができます。

ページネーションに強弱がつくようになる。アクティブなのは大きく、それ以外は小さく。
デフォルトではfalse。

dynamicMainBulletsnumber1

dynamicBulletsが有効な場合に表示されるメインの弾丸の数です。

dynamicBulletsがtrue前提。
dynamicBulletsが有効な数を指定できる。

el

CSSSelector | 

HTML
Element | 

null

null

ページネーションを行うコンテナのCSSセレクタまたはHTML要素の文字列

formatFractionCurrentfunction(
number)
 

端数処理のページ番号をフォーマットします。関数は現在の番号を受け取り、フォーマットされた値を返す必要があります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
formatFractionCurrent: function (number) {
    switch(number)
        {
            case 1:
            myNum='ファースト'
            break;
            case 2:
            myNum='セカンド'
            break;
            case 3:
            myNum='サード'
            break;
            default:myNum= number
        }
    return myNum;
},

typeをfractionに指定した上で、現在位置の方の数字表記を変えたい時に使う。

formatFractionTotalfunction
(number)
 

小数点以下のページ数の合計値をフォーマットします。総数を受け取る関数では、フォーマットされた値を返す必要があります。

typeをfractionに指定した上で、全体で何枚あるかの数字表記を変えたい時に使う。
書き方はformatFractionCurrentと同じ。

hiddenClassstring'swiper-pagination-hidden'

ページネーションが非アクティブになったときのCSSクラス名

hideOnClickがtrueのときに隠れたページネーションにつくクラス。

hideOnClickbooleantrue

スライダーのコンテナをクリックした後、ページネーションのコンテナの表示/非表示を切り替える。

trueだとスライドをクリックするとページネーションが消えたり出たりする。

lockClassstring'swiper-pagination-lock'

ページネーションが無効になっているときに設定されるCSSクラス名

オプションによってページネーションがロックされている時につくクラス

modifierClassstring'swiper-pagination-'

パラメーターに応じてページネーションに追加されるモディファイアのCSSクラス名の最初の部分

パラメータに応じてつくクラスを指定。swiper-pagination-1,swiper-pagination-2みたいな感じになる。

progressbar
FillClass
string'swiper-pagination-progressbar-fill'

ページネーションのprogressbarの塗りつぶし(fill)要素のCSSクラス名

typeがprogressのとき、進行度を示す青色のspanタグにつくクラス。

progressbar
Opposite
booleanfalse

ページ処理のプログレスバーを、Swiperのdirectionパラメータと反対にします。つまり、水平方向のSwiperには垂直プログレスバーを、垂直方向のSwiperには水平プログレスバーを表示します。

スライダーが横スライドの時に、縦のページネーションが出したい。
もしくは縦のスライドの時に、横のページネーションが出したい時に使う。
デフォルトではfalse。

progressbar
OppositeClass
string'swiper-pagination-progressbar-opposite'

progressbarOppositeがtrueの時につくクラス。

renderBullet

function(

index,
 className)

null

このパラメータは、ページネーションのbulletsを完全にカスタマイズすることができます。ページネーションの弾丸のindex番号と必須要素のクラス名(className)を受け取る関数をここに渡す必要があります。bulletsのページネーションタイプのみ

ページネーションをよりカスタムしたい人へ。個別クラスを付けたりできる。typeがbullet限定。

const swiper = new Swiper('.swiper-container', {
  //...
  renderBullet: function (index, className) {
    return '<span class="' + className + '">' + (index + 1) + '</span>';
  }
});

renderCustom

function(
swiper
current
total)
null

このパラメータは、 'custom' ページネーションタイプで、どのようにレンダリングするかを指定しなければならない場合に必要です。

ページネーションをよりカスタムしたい人へ、その4。個別クラスを付けたりできる。typeがcustom限定。

const swiper = new Swiper('.swiper-container', {
  //...
  renderCustom: function (swiper, current, total) {
    return current + ' of ' + total;
  }
});
renderFractionfunction(
currentClass
totalClass)
null

このパラメータは、"fraction" pagination htmlをカスタマイズすることができます。fraction pagination タイプのみ

const swiper = new Swiper('.swiper-container', {
  //...
  renderFraction: function (currentClass, totalClass) {
      return '<span class="' + currentClass + '"></span>' +
              ' of ' +
              '<span class="' + totalClass + '"></span>';
  }
});
renderProgressbarfunction(
progressbar
FillClass
)
null

このパラメータでは、「progress」ページネーションをカスタマイズできます。progress ページネーションの場合のみ

const swiper = new Swiper('.swiper-container', {
  //...
  renderProgressbar: function (progressbarFillClass) {
      return '<span class="' + progressbarFillClass + '"></span>';
  }
});
totalClassstring'swiper-pagination-total'

端数 "のページネーションで "スナップ "の総数を持つ要素のCSSクラス名

typeがfractionのときの全てのページ数側の数字につくクラス。

type'bullets' |
 'fraction' | 
'progress
bar' | 
'custom'
'bullets'

ページネーションのタイプを示す文字列。"bullets"、"fraction"、"progressbar"、"custom "のいずれか。

丸い円か、数字か、barか、カスタム。progressは結構かっこいい。

}

Pagination Methods

Properties
swiper.pagination.bullets 

Dom7のpagination bullets HTML要素の配列のようなコレクション。特定のスライドのHTML要素を取得するには、swiper.pagination.bullets[1]を使用します。

ページネーション1個1個のHTML要素を取得できる。特定の順番のを取得したい場合はmySwiper.pagination.bullets[1]みたいに書く。

swiper.pagination.elHTMLElement

ページネーションコンテナ要素のHTMLElement

ページネーション全体のHTML要素を取得できる。

Methods
swiper.pagination.destroy()

Destroy pagination(破棄する)

swiper.pagination.init()

Initialize pagination(初期化する)

swiper.pagination.render()

Render pagination layout(レンダリング)

ページネーションをレンダリングする。

swiper.pagination.update()

Update pagination state (enabled/disabled/active)

ページネーションの状態を更新する。

Pagination Events

NameArgumentsDescription
paginationHide(swiper)

Event will be fired on pagination hide(ページネーション非表示時)

paginationRender(swiper, paginationEl)

Event will be fired after pagination rendered(レンダリング後)

paginationShow(swiper)

Event will be fired on pagination show(ページネーション表示後)

paginationUpdate(swiper, paginationEl)

Event will be fired when pagination update(ページネーション更新時)

Scrollbar

Scrollbar Parameters

NameTypeDefaultDescription
scrollbarScrollbarOptions | boolean 

Object with scrollbar parameters

const swiper = new Swiper('.swiper-container', {
  scrollbar: {
    el: '.swiper-scrollbar',
    draggable: true,
  },
});
{
dragClassstring'swiper-scrollbar-drag'
Scrollbar draggable element CSS class

ドラッグする黒いやつのクラス名を指定できる。

dragSize'auto' | number'auto'

スクロールバーのドラッグ可能な要素のサイズ(px)

ドラッグする黒いやつの横幅を指定できる。
デフォルトでは’auto’。

draggablebooleantrue

スライダーの位置を制御できるようにスクロールバーをドラッグ可能にするには、trueを設定します。

ドラッグ操作を可能にするかどうか。
デフォルトではfalse。

elCSSSelector | HTMLElement | nullnull

スクロールバーを持つコンテナのCSSセレクタまたはHTML要素の文字列。

hidebooleantrue

ユーザーの操作で自動的にスクロールバーを隠す

ユーザーが操作したあとにスクロールバーを消すかどうか。
デフォルトではtrue。

lockClassstring'swiper-scrollbar-lock'

スクロールバー要素が無効の場合の追加CSSクラス

クロールバーがロックされているときにつくクラス名を指定できる。

snapOnReleasebooleanfalse

スクロールバーを離したときにスライダーの位置をスライドに合わせるには、trueを設定します。

スクロールバーのスナップを離したときに、スライドにフィットするようになる。
デフォルトではfalse・。

}

Scrollbar Methods

Properties
swiper.scrollbar.dragElHTMLElement

ドラッグする黒いやつのHTML要素を指定できる。

swiper.scrollbar.elHTMLElement

スクロールバー全体のHTML要素を指定できる。

Methods
swiper.scrollbar.destroy()

Destroy scrollbar(破棄する)

swiper.scrollbar.init()

Initialize scrollbar(初期化する)

swiper.scrollbar.setTranslate()

Updates scrollbar translate

swiper.scrollbar.updateSize()

Updates scrollbar track and handler sizes

Scrollbar Events

NameArgumentsDescription
scrollbarDragEnd(swiper, event)

Event will be fired on draggable scrollbar drag end

イベントは、ドラッグ可能なスクロールバーのドラッグ終了時に発生します。

scrollbarDragMove(swiper, event)

Event will be fired on draggable scrollbar drag move

イベントは、ドラッグ可能なスクロールバーのドラッグ移動時に発生します。

scrollbarDragStart(swiper, event)

Event will be fired on draggable scrollbar drag start

イベントは、ドラッグ可能なスクロールバーのドラッグ開始時に発生します。

Autoplay (自動再生)

Autoplay Parameters

NameTypeDefaultDescription
autoplayAutoplayOptions | boolean 

Object with autoplay parameters or boolean true to enable with default settings

const swiper = new Swiper('.swiper-container', {
 autoplay: {
   delay: 5000,
 },
});
{ // autoplay: {} の中身
delaynumber3000

トランジション間の遅延時間(単位:ms)。このパラメータが指定されていない場合、自動再生は無効になります

特定のスライドに対して異なる遅延時間を指定する必要がある場合は、スライドにdata-swiper-autoplay (in ms)属性を使用することで可能です。

何秒待ってスライドするかの設定。補足として、個別に設定したい場合はタグに直接書く。

<!-- このスライドだけ遅延時間を2秒にする -->
<div class="swiper-slide" data-swiper-autoplay="2000">
disableOnInteractionbooleantrue

falseに設定すると、ユーザーの操作(スワイプ)があっても自動再生が無効にならず、操作後は毎回再起動されます。

ユーザーがスライダーを操作したあと、自動再生が止まるかどうか。falseだと止まらなくなる。

pauseOnMouseEnterbooleanfalse

自動再生を有効にすると、マウスがSwiperコンテナ上に入ると自動再生が一時停止します。

reverseDirectionbooleanfalse

逆方向のオートプレイを可能にする

自動再生が逆方向になる。

stopOnLastSlidebooleanfalse

このパラメータを有効にすると、自動再生が最後のスライドに達した時点で停止します(ループモードでは効果がありません)。

waitForTransitionbooleantrue

自動再生を有効にすると、ラッパーのトランジションを待って再生を継続します。virtualTranslateを使用している場合、スライダーにトランジションがない場合は、無効にすることができます。

スライドの移動を待ったあとに自動再生するかどうか。基本trueでいいんだけど、virtualTranslateを使用する場合はfalseにする必要がある。

}

Autoplay Methods

Properties
swiper.autoplay.runningboolean

自動再生が有効かどうか。

Methods
swiper.autoplay.start()

自動再生を開始する。

swiper.autoplay.stop()

自動再生を停止する。

Autoplay Events

NameArgumentsDescription
autoplay(swiper)

自動再生によってスライドが移動したら実行。

autoplayStart(swiper)

自動再生が開始されると実行。

autoplayStop(swiper)

自動再生が停止されると実行。

Parallax(視差効果)

パララックス(parallax)は英語で「視差」という意味があります。ざっくりというと「部分ごとに動くスピードや、動く方向に差をつける」というイメージです。Webデザインでは、スクロール効果としてパララックスがよく取り入れられます。

Parallax scrolling header-CodePen

 緑の部分と、背後の黒の部分で動くスピードが違うことが分かるかと思います。このように差をつけることで、奥行き感を出したり、目を引くようなデザインにすることができる…というわけです。

https://saruwakakun.com/html-css/reference/parallax

Swiperは、swiper/slidesのネストされた要素のパララックス遷移効果をサポートしています。サポートされているパララックス要素のタイプは2つあります。

  • swiper-containerの直接の子要素です。このような要素の視差効果は、全体のスライダーの進行状況に依存します。視差のある背景に便利
  • スライドの子要素。このような要素の視差効果は、スライドの進行状況に依存します。

視差効果を有効にするには、parallax:trueパラメータを渡してSwiperを初期化し、必要な要素に以下のいずれか(または混合)の属性を追加する必要があります:

  • data-swiper-parallax - transform-translate parallax transition(視差効果のあるパララックス遷移?)を可能にします. この属性は以下の値を指定できる:
    • number - 進行状況に応じて要素を移動させるために、px単位の値(上記の例ではタイトル、サブタイトルのように)を指定します。この場合、この要素は、スライドの位置(次または前)に応じて±pxの値で移動します。
    • percentage - (parallax-bgと同様)を使用すると、進行状況やサイズに応じて要素が移動します。この場合、要素は、スライドの位置(次または前)に応じて、そのサイズ(水平方向の幅と垂直方向の高さ)の ±割合で移動されます。つまり、要素の幅が400pxで、data-swiper-parallax="50%"を指定した場合、要素は±200pxの範囲で移動します。
  • data-swiper-parallax-x - data-swiper-parallaxと同じだが、X軸だけ違う
  • data-swiper-parallax-y - Y軸が違う
  • data-swiper-parallax-scale -視差要素が "inactive"(アクティブなスライド上にない)状態にあるときの、視差要素のスケール比。
  • data-swiper-parallax-opacity - パララックス要素が "inactive"(アクティブなスライド上にない)状態にあるときの不透明度
  • data-swiper-parallax-duration -パララックス要素のカスタムトランジションデュレーション

data-swiper-parallaxはスライドした時に移動する距離を設定。数、もしくはパーセントで設定。
data-swiper-parallax-x、data-swiper-parallax-yで縦軸横軸を設定。
data-swiper-parallax-scaleでアクティブじゃないスライドの大きさを指定。
data-swiper-parallax-opacityでアクティブじゃないスライドの透明度を指定。
data-swiper-parallax-durationで推移時間をカスタムで指定。

<div class="swiper-container">
  <!-- Parallax background element -->
  <div
    class="parallax-bg"
    style="background-image:url(path/to/image.jpg)"
    data-swiper-parallax="-23%"
  ></div>
  <div class="swiper-wrapper">
    <div class="swiper-slide">
      <!-- Each slide has parallax title -->
      <div class="title" data-swiper-parallax="-100">Slide 1</div>
      <!-- Parallax subtitle -->
      <div class="subtitle" data-swiper-parallax="-200">Subtitle</div>
      <!-- And parallax text with custom transition duration -->
      <div
        class="text"
        data-swiper-parallax="-300"
        data-swiper-parallax-duration="600"
      >
        <p>Lorem ipsum dolor sit amet, ...</p>
      </div>
      <!-- Opacity parallax -->
      <div data-swiper-parallax-opacity="0.5">I will change opacity</div>
      <!-- Scale parallax -->
      <div data-swiper-parallax-scale="0.15">I will change scale</div>
    </div>
    ...
  </div>
</div>

Parallax Parameters

NameTypeDefaultDescription
parallaxParallaxOptions | boolean 

Object with parallax parameters

const swiper = new Swiper('.swiper-container', {
  parallax: true,
});
{
enabledbooleanfalse

Enable, if you want to use "parallaxed" elements inside of slider

}

Lazy Loading (遅延読み込み)

遅延読み込みを可能にするためには、まず、スライドで背景を持つ画像や要素のための特別なレイアウトが必要になります。

遅延ロードする画像には.swiper-lazyを設定。かつ、srcではなくdata-srcで設定。srcsetではなく、data-srcsetで設定。
スライドの背景画像はdata-backgroundで設定。
各スライドの後ろにdiv.swiper-lazy-preloaderを設置(白いプリロードにしたいならswiper-lazy-preloader-whiteを追加)。
かつ、オプションに2つを追加

preloadImages: false,
lazy: true

レイジーロードのオプションを使いたいなら下の書き方。

preloadImages: false,
lazy: {
  loadPrevNext: true
}

lazy:{}の中に遅延読み込みのオプションを書いてく。

<div class="swiper-container">
  <div class="swiper-wrapper">
    <!-- Lazy image -->
    <div class="swiper-slide">
      <img data-src="path/to/picture-1.jpg" class="swiper-lazy" />
      <div class="swiper-lazy-preloader"></div>
    </div>

    <!-- Lazy image with srscet-->
    <div class="swiper-slide">
      <img
        data-src="path/to/logo-small.png"
        data-srcset="path/logo/logo-large.png 2x"
        class="swiper-lazy"
      />
      <div class="swiper-lazy-preloader"></div>
    </div>

    <!-- Element with lazy background image -->
    <div class="swiper-slide">
      <div data-background="path/to/picture-2.jpg" class="swiper-lazy">
        <div class="swiper-lazy-preloader"></div>
      </div>
    </div>

    <!-- Lazy background image on slide itself -->
    <div
      data-background="path/to/picture-3.jpg"
      class="swiper-slide swiper-lazy"
    >
      <div class="swiper-lazy-preloader"></div>
    </div>
  </div>
</div>

以下を御覧ください:

  • 遅延読み込みされた画像/要素は、それぞれ "swiper-lazy "クラスを追加する必要があります。
  • 要素のレイジーイメージソースは、"src "ではなく "data-src "属性で指定する必要があります。
  • 要素のレイジーイメージのソースセットは、"srcset "ではなく "data-srcset "属性で指定する必要があります。
  • data-background "属性にレイジーバックグラウンドの画像ソースを指定する必要があります。

また、画像が読み込まれた後に自動的に削除されるアニメーションのプリローダースピナーをスライドに追加することもできます。:

<div class="swiper-lazy-preloader"></div>

Or 暗いレイアウトには白いものを:

<div class="swiper-lazy-preloader swiper-lazy-preloader-white"></div>

その後、Swiperの初期化時にレイジーローディングを有効にする必要があります :

const swiper = new Swiper('.swiper-container', {
  // Disable preloading of all images
  preloadImages: false,
  // Enable lazy loading
  lazy: true,
});

もしslidesPerView: auto'またはslidesPerView > 1を使用している場合は、watchSlidesVisibilityも有効にする必要があり、Swiperは現在表示されているスライドで画像を読み込みます。

Lazy Loading Parameters

NameTypeDefaultDescription
lazyLazyOptions | boolean 

画像の遅延読み込みを有効にします。遅延読み込みのパラメータを持つオブジェクト、またはデフォルト設定で有効にするための真偽値

const swiper = new Swiper('.swiper-container', {
  lazy: {
    loadPrevNext: true,
  },
});
{
checkInViewbooleanfalse

最初のスライドで画像を遅延ロードする前に、スイーパーが表示されているかどうかを確認することができます。

elementClassstring'swiper-lazy'

遅延する要素のCSSクラス名

loadOnTransitionStartbooleanfalse

デフォルトでは、Swiperはこのスライドに移行した後に遅延画像をロードしますので、移行の最初に新しい画像のロードを開始する必要がある場合は、このパラメータを有効にすることができます。

デフォルトではスライドアニメーション完了後にロードするけど、これをtrueにするとスライドアニメーション前にロードする。
デフォルトではfalse。

loadPrevNextbooleanfalse

trueに設定すると、最も近いスライド画像の遅延読み込みが有効になります(前と次のスライド画像の場合)。

次の画像も遅延ロードするかどうか。個人的にはfalse推奨。
デフォルトではfalse。

loadPrevNextAmountnumber1

遅延画像をプリロードする次/前のスライドの量。slidesPerViewより小さくてはいけません。

プリロードする次・前の画像の枚数。
デフォルトでは1。

loadedClassstring'swiper-lazy-loaded'

遅延読み込が完了した要素のCSSクラス名

読み込み完了後の要素につくクラス。
デフォルトでは’swiper-lazy-loaded’

loadingClassstring'swiper-lazy-loading'

遅延読み込み中の要素のCSSクラス名

遅延ロード要素につくクラス。
デフォルトでは’swiper-lazy-loading’

preloaderClassstring'swiper-lazy-preloader'

遅延プリローダのCSSクラス名

プリローダーにつけるクラス。

scrollingElementCSSSelector | null | 
Dom7Array | HTMLElement
 

checkInViewでスクロールをチェックする要素。デフォルトはwindowです。

}

Lazy Loading Methods

Methods
swiper.lazy.load()

現在のスライダーの状態(位置)に応じた遅延画像のロード/アップデイト

遅延読み込みした画像を読み込む。

swiper.lazy.loadInSlide(index)

スライドの遅延画像を指定したインデックスで強制的に読み込む

指定した順番の遅延読み込みした画像を読み込む。

Lazy Loading Events

NameArgumentsDescription
lazyImageLoad(swiper, slideEl, imageEl)

Event will be fired in the beginning of lazy loading of image

遅延読み込み開始で実行。

lazyImageReady(swiper, slideEl, imageEl)

Event will be fired when lazy loading image will be loaded

画像が読み込まれたら実行。

Fade Effect (フェード効果)

スライドが横(縦)方向にずれるスライドではなく、フェードインでのスライドになる

この機能を利用するには、effectパラメータが 'fade' に設定されている必要があります。後ろや下にコンテンツが表示されないようにするには、crossFade をtrueに設定する必要があります。

Fade Effect Parameters

NameTypeDefaultDescription
fadeEffectFadeEffectOptions 

Object with Fade-effect parameters

const swiper = new Swiper('.swiper-container', {
  effect: 'fade',
  fadeEffect: {
    crossFade: true
  },
});
{
crossFadebooleanfalse

Enables slides cross fade

クロスフェード効果を有効にする。フェードを実装するなら設定必須レベルかも。
デフォルトではfalse。

}

Coverflow Effect

立体的なやつが横に並ぶやつ。

この機能を有効にするには、 effectパラメータを 'coverflow'に設定する必要があります。

Coverflow Effect Parameters

NameTypeDefaultDescription
coverflowEffectCoverflowEffectOptions 

Object with Coverflow-effect parameters.

const swiper = new Swiper('.swiper-container', {
  coverflowEffect: {
    rotate: 30,
    slideShadows: false,
  },
});
{
depthnumber100

Depth offset in px (slides translate in Z axis)

奥行き。デフォルトでは100。

modifiernumber1

Effect multiplier

角度。デフォルトでは1。

rotatenumber50

Slide rotate in degrees

次のスライドに行く時までに各スライドがどの程度回転するかの角度。
デフォルトでは50。

slideShadowsbooleantrue

Enables slides shadows

スライドに影をつける。
デフォルトではtrue。

stretchnumber0

Stretch space between slides (in px)

スライド間の距離。デフォルトでは0。

}

Flip Effect

くるって裏返したら次のスライドになるやつ。カードゲームのオープニングにあるやつって言えばなんとなく伝わりそう。

この機能を利用するには、 effectパラメータを「フリップ」に設定する必要があります。

Flip Effect Parameters

NameTypeDefaultDescription
flipEffectFlipEffectOptions 

Object with Flip-effect parameters

const swiper = new Swiper('.swiper-container', {
  flipEffect: {
    slideShadows: false,
  },
});
{
limitRotationbooleantrue

Limit edge slides rotation

角度の制限みたいなものなんだけど、これfalseにすると動きやばくなるからtrue固定でいいと思う。

slideShadowsbooleantrue

Enables slides shadows

スライドの影。デフォルトではtrue。

}

Cube Effect

直方体が回転するみたいなスライドになる。極力スライドさせる画像は正方形の方がきれい。

この機能を有効にするには、 effect paramを 'cube' に設定する必要があります。

Cube Effect Parameters

NameTypeDefaultDescription
cubeEffectCubeEffectOptions 

Object with Cube-effect parameters

const swiper = new Swiper('.swiper-container', {
  cubeEffect: {
    slideShadows: false,
  },
});
{
shadowbooleantrue

Enables main slider shadow

キューブの下にある影のオンオフ。デフォルトではtrue。

shadowOffsetnumber20

Main shadow offset in px

影の位置。デフォルトでは20。

shadowScalenumber0.94

Main shadow scale ratio

影の大きさ。デフォルトでは0.94。

slideShadowsbooleantrue

Enables slides shadows

側面の影のオンオフ。デフォルトではtrue。

}

Thumbs (サムネイル)

サムネイルを選択したらそこにスライドするというswiperを実現したい時のオプション。
swiperを2種類用意する。

var thumbs = new Swiper('#thumbs',{
    spaceBetween: 5,
    slidesPerView: 5,
    watchSlidesVisibility: true,
})
var gallerySwiper = new Swiper('#view',{ //メインスワイパー
    thumbs: {
        swiper: thumbs,//このthumbsをサムネイルとして使うよと指定。
    }
})

thumbs内にオプションを入れていく。

コントローラコンポーネントに加えて、SwiperにはThumbsコンポーネントが付属しています。これは、2つのスワイパーを同期させるために使用されるコントローラよりも、より正しい方法で追加の親指スワイパーと連携するように設計されています。

Thumbs Parameters

NameTypeDefaultDescription
thumbsThumbsOptions 

Object with thumbs component parameters

const swiper = new Swiper('.swiper-container', {
  ...
  thumbs: {
    swiper: thumbsSwiper
  }
});
{
autoScrollOffsetnumber0

どのサムネイルがアクティブになっているか、端からのスライドで自動的にスクロールサムネイルを移動させるかを設定できます。例えば、1に設定し、最後に表示されているサムネイルがアクティブになった場合(端から1番目)、サムネイルを自動でスクロールします。

例えば、slidesPerViewを4に設定していて上記オプションを設定していて、スライドが6枚ある場合、4番目をクリックした後に5番目のスライドがすっと出てくるようにできる。
1にすることが個人的には推奨。
デフォルトでは0。

multipleActiveThumbsbooleantrue

有効にすると、複数のサムネイルスライドが有効になることがあります。

複数のサムネイルをアクティブにできる状態にできる。true推奨。
デフォルトではtrue。

slideThumbActiveClassstring'swiper-slide-thumb-active'

有効化したサムネイルのスワイパースライドに追加されるクラス

swiperSwiper | nullnull

サムネイルとして使用されるSwiperのインスタンス、またはサムネイルのSwiperを初期化するためのSwiperパラメータを持つオブジェクト

別のswiperがある変数を指定する。これで紐づく感じ。

1
2
3
4
5
6
thumbs: {
    swiper: {
        el: '.swiper-container-thumbs',
        slidesPerView: 5,
    }
}
 

こういう感じでもできるけど、基本の書き方で書いたほうがわかりやすい。

thumbsContainerClassstring'swiper-container-thumbs'

Additional class that will be added to thumbs swiper-container

サムネイルの方のコンテナにつくクラス。

}

Thumbs Methods

Properties
swiper.thumbs.swiperSwiper

Swiper instance of thumbs swiper

サムネイルを読み込む。

Methods
swiper.thumbs.init()

Initialize thumbs

swiper.thumbs.update(initial)

Update thumb

Zoom

ダブルタップ・ダブルクリックでズームしたり、ピンチイン・ピンチアウトでズームしたりできる。

.swiper-zoom-containerで囲むする必要がある。data-swiper-zoomを使えば個別に最大倍率を操作できる。

Swiperは、ピンチジェスチャーで画像を拡大したり、ダブルタップで画像を拡大/縮小したりできるズームイメージ機能をサポートしています(iOSで1枚の写真を閲覧するときに表示されるものと同様です)。この場合、追加のレイアウトが必要です:

<div class="swiper-container">
  <div class="swiper-wrapper">
    <div class="swiper-slide">
      <div class="swiper-zoom-container">
        <img src="path/to/image1.jpg" />
      </div>
    </div>
    <div class="swiper-slide">
      <div class="swiper-zoom-container">
        <img src="path/to/image2.jpg" />
      </div>
    </div>
    <div class="swiper-slide">Plain slide with text</div>
    <div class="swiper-slide">
      <!-- Override maxRatio parameter -->
      <div class="swiper-zoom-container" data-swiper-zoom="5">
        <img src="path/to/image1.jpg" />
      </div>
    </div>
  </div>
</div>
  • すべての "zoomable "画像は、swiper-zoom-containerクラスのdivでラップする必要があります。.
  • デフォルトでは、imgpicturecanvasのいずれかの要素をズームすることになっています。もし、他のカスタム要素でズームさせたい場合は、swiper-zoom-targetクラスをこの要素に追加してください。例↓
<div class="swiper-container">
  <div class="swiper-wrapper">
    <div class="swiper-slide">
      <div class="swiper-zoom-container">
        <!-- custom zoomable element -->
        <div
          class="swiper-zoom-target"
          style="background-image: url(...)"
        ></div>
      </div>
    </div>
  </div>
</div>
  • ズームコンテナのdata-swiper-zoom属性を使って、特定のスライドのmaxRatioパラメータをオーバーライドすることができます。

Zoom Parameters

NameTypeDefaultDescription
zoomZoomOptions | boolean 

ズーム機能を有効にします。オブジェクトにズームパラメータを設定するか、デフォルト設定で有効にする場合はtrueを指定します。

const swiper = new Swiper('.swiper-container', {
  zoom: {
    maxRatio: 5,
  },
});
{
containerClassstring'swiper-zoom-container'

CSS class name of zoom container

囲むやつのクラス名を指定できる。

maxRationumber3

Maximum image zoom multiplier

ズームした時の最大倍率。デフォルトでは3。

minRationumber1

Minimal image zoom multiplier

最小倍率。デフォルトでは1。

togglebooleantrue

Enable/disable zoom-in by slide's double tap

ダブルタップでのズームを有効・無効にする。
デフォルトではtrue。

zoomedSlideClassstring'swiper-slide-zoomed'

CSS class name of zoomed in container

拡大されたときのクラス名を指定できる。
デフォルトでは’swiper-slide-zoomed’

}

Zoom Methods

Properties
swiper.zoom.enabledboolean

ズームモジュールが有効であるかどうか

ズームしてるかどうかを取得できる。??

swiper.zoom.scalenumber

現在の画像の拡大率

今の比率を取得できる。

Methods
swiper.zoom.disable()

ズームを無効にする。

swiper.zoom.enable()

ズームを有効にする。

swiper.zoom.in()

アクティブなスライドを拡大する。

swiper.zoom.out()

アクティブなスライドを縮小する。

swiper.zoom.toggle()

アクティブなスライドの拡大・縮小を切り替える。

Zoom Events

NameArgumentsDescription
zoomChange(swiper, scale, imageEl, slideEl)

ズーム変更時に発生するイベント

Keyboard Control キーボード操作

キーボードでスライダーを操作できるようにする。

Keyboard Control Parameters

NameTypeDefaultDescription
keyboardKeyboardOptions | boolean 

キーボードを使ったスライドのナビゲーションを可能にする。キーボードパラメータを持つオブジェクト、またはデフォルト設定で有効にするための真偽値

const swiper = new Swiper('.swiper-container', {
  keyboard: {
    enabled: true,
    onlyInViewport: false,
  },
});
{
enabledbooleanfalse

キーボード操作を有効にする。
デフォルトではfalse。

onlyInViewportbooleantrue

ビューポートにあるスライダーのみ適応させる。
デフォルトではtrue。

pageUpDownbooleantrue

trueにすると、Page UpキーとPage Downキーで操作できるようになる。
デフォルトではtrue。

}

Keyboard Control Methods

Properties
swiper.keyboard.enabledboolean

キーボード操作が有効かどうか取得できる。

Methods
swiper.keyboard.disable()

キーボード操作を無効にする。

swiper.keyboard.enable()

キーボード操作を有効にする。

Keyboard Events

NameArgumentsDescription
keyPress(swiper, keyCode)

Event will be fired on key press

Mousewheel Control マウスホイール操作

マウスホイールでスライダーを操作できるようにする。

Mousewheel Control Parameters

NameTypeDefaultDescription
mousewheelMousewheelOptions | boolean 

マウスホイールを使用して、スライドのナビゲーションを可能にします。マウスホイールのパラメータを持つオブジェクト、またはデフォルトの設定で有効にするためにはtrueのブール値を設定

const swiper = new Swiper('.swiper-container', {
  mousewheel: {
    invert: true,
  },
});
{
eventsTarget'container' | 'wrapper' | CSSSelector | HTMLElement'container'

マウスホイールイベントを受け付けるコンテナのCSSセレクタまたはHTML要素を持つ文字列。デフォルトでは、swiper-containerです。

マウスホイールのイベントが発火するHTML要素を取得できる。デフォルトでは’container’(swiper-container)

forceToAxisbooleanfalse

trueに設定すると、マウスホイールのスワイプを強制的に軸に合わせます。つまり、水平モードではマウスホイールは水平方向のスクロールでのみ動作し、垂直モードでは垂直方向のスクロールでのみ動作します。

マウスホイールを転がした方向でしかスライドできなくする。水平モードではマウスホイールは水平マウスホイールスクロールでのみ機能し、垂直モードでは垂直スクロールでのみ機能する。
デフォルトではfalse。

invertbooleanfalse

真を設定するとスライド方向が反転します

スライド方向が逆になる。

releaseOnEdgesbooleanfalse

trueに設定すると、スイパーが端の位置(最初か最後)にあるときに、マウスホイールイベントを解放し、ページのスクロールを可能にします。

trueだと最初のスライドのときに上にマウスを動かすとページが動くようになる。また、最後のスライドのときに下にマウスを動かすとページが動く。
少し挙動が不安定かも。
デフォルトではfalse。

sensitivitynumber1

マウスホイールデータの乗数。マウスホイールの感度を調整することができる。

マウスホイールの感度。
デフォルトでは1。

thresholdDeltanumber | nullnull

スワイパースライド変更のトリガーとなるマウスホイールのスクロールの最小差分

thresholdTimenumber | nullnull

スワイパースライド変更のトリガーとなるマウスホイールのスクロール時間の最小値(単位:ms)

}

Mousewheel Control Methods

Properties
swiper.mousewheel.enabledboolean

Whether the mousewheel control is enabled

マウスホイールコントロールが有効かどうかを取得できる。

Methods
swiper.mousewheel.disable()

Disable mousewheel control

swiper.mousewheel.enable()

Enable mousewheel control

Mousewheel Events

NameArgumentsDescription
scroll(swiper, event)

Event will be fired on mousewheel scroll

Virtual Slides

スライドしたい要素が大量にある(100とか200とか)ある場合、流石に重い。

そうした時に、アクティブなスライドとその前後だけを読み込みDOMに追加し、次へボタンが押されたりしたらその次のスライドの前後だけを読み込みDOMに追加、前のスライドの前後にあったものはDOMから削除するとしたら軽くなる。それをしてくれるオプション。

書くと果てしなく長くなりそうだから省略。

Virtual Slides module allows to keep just required amount of slides in DOM. It is very useful in terms in performance and memory issues if you have a lot of slides, especially slides with heavyweight DOM tree or images.Note that according to Virtual Slides realization it doesn't work with loop mode, slidesPerColumn more than 1 and slidesPerView: 'auto'

Virtual Slidesモジュールは、DOMに必要な量のスライドだけを保持することができます。Virtual Slidesは、ループモード、slidesPerColumnが1以上、slidesPerView: 'auto'では動作しないことに注意してください。

Virtual Slides Parameters

NameTypeDefaultDescription
virtualVirtualOptions | boolean 

バーチャルスライド機能を有効にします。バーチャルスライドのパラメータを持つオブジェクト、またはデフォルトの設定で有効にする場合はtrueのブール値。

const swiper = new Swiper('.swiper-container', {
  virtual: {
    slides: ['Slide 1', 'Slide 2', 'Slide 3', 'Slide 4', 'Slide 5'],
  },
});
{
addSlidesAfternumber0

アクティブなスライドの後にプリレンダリングされるスライドの量を増やす

addSlidesBeforenumber0

アクティブなスライドの前に、プリレンダリングされたスライドの量を増やす

cachebooleantrue

スライドのhtml要素をレンダリングする際にDOMキャッシュを有効にします。レンダリングされたスライドのHTML要素はキャッシュに保存され、そこから再利用されます。

renderExternalfunction(data)null

外部レンダリング用の関数です(React.jsやVue.jsのようにDOM操作や状態を扱う他のライブラリを使用している場合などに使用します)。引数として、以下のプロパティを持つdataオブジェクトを受け取ります。:

  • offset - スライドの左/上のオフセット(px
  • from -レンダリングされるべき最初のスライドのインデックス
  • to -レンダリングされるべき最後のスライドのインデックス
  • slides - レンダリングされるスライドアイテムの配列
renderExternalUpdatebooleantrue

有効(デフォルト)にすると、renderExternalが呼ばれた直後にSwiperのレイアウトを更新します。非同期レンダリングを行うレンダリングライブラリを使用する場合、Swiperを無効にして手動で更新すると便利です。

renderSlidefunction(slideindex)null

スライドをレンダリングする関数です。引数には、スライド配列の現在のスライド項目と、 現在のスライドのインデックス番号を指定します。この関数は、スワイパースライドの外部HTMLを返さなければなりません。

slides []

Array with slides

}

Virtual Slides Methods

Properties
swiper.virtual.cacheobject

Object with cached slides HTML elements

swiper.virtual.fromnumber

Index of first rendered slide

swiper.virtual.slides 

Array with slide items passed by virtual.slides parameter

swiper.virtual.tonumber

Index of last rendered slide

Methods
swiper.virtual.appendSlide(slide)

スライドを追加. slides には、1つのスライドアイテム、またはそのようなスライドを含む配列を指定します。

swiper.virtual.prependSlide(slide)

スライドを前置します。slidesは、単一のスライドアイテムまたはそのようなスライドを含む配列です。

swiper.virtual.removeAllSlides()

Remove all slides

swiper.virtual.removeSlide(slideIndexes)

Remove specific slide or slides. slideIndexes can be a number with slide index to remove or array with indexes.

swiper.virtual.update(force)

Update virtual slides state

renderExternal Example

renderExternal はスライドのレンダリングを他のライブラリにバイパスすることができ、React.jsやVue.jsのようなライブラリでは非常に便利です。

With Vue.js

<template>
  <!-- ... -->
  <div class="swiper-container">
    <div class="swiper-wrapper">
      <!-- It is important to set "left" style prop on every slide -->
      <div
        class="swiper-slide"
        v-for="(slide, index) in virtualData.slides"
        :key="index"
        :style="slideStyles"
      >
        {{slide}}
      </div>
    </div>
  </div>
  <!-- ... -->
</template>
<script>
  import Swiper from 'swiper/bundle';

  export default {
    data() {
      return {
        // dummy slides data
        slides: (function () {
          var slides = [];
          for (var i = 0; i < 600; i += 1) {
            slides.push('Slide ' + (i + 1));
          }
          return slides;
        })(),
        // virtual data
        virtualData: {
          slides: [],
        },
      };
    },
    computed: {
      slideStyles() {
        return `left: ${this.virtualData.offset}px;`;
      },
    },
    mounted() {
      const self = this;
      const swiper = new Swiper('.swiper-container', {
        // ...
        virtual: {
          slides: self.slides,
          renderExternal(data) {
            // assign virtual slides data
            self.virtualData = data;
          },
        },
      });
    },
  };
</script>

With React.js

import React from 'react';
import Swiper from 'swiper/bundle';

export default class extends React.Component {
  constructor() {
    this.state = {
      // dummy slides data
      slides: (function () {
        var slides = [];
        for (var i = 0; i < 600; i += 1) {
          slides.push('Slide ' + (i + 1));
        }
        return slides;
      }()),
      // virtual data
      virtualData: {
        slides: [],
      },
    }
  }
  componentDidMount() {
    const self = this;
    const swiper = new Swiper('.swiper-container', {
      // ...
      virtual: {
        slides: self.state.slides,
        renderExternal(data) {
          // assign virtual slides data
          self.setState({
            virtualData: data,
          });
        }
      },
    });
  }
  render() {
    {/* ... */}
    <div className="swiper-container">
      <div className="swiper-wrapper">
        {/* It is important to set "left" style prop on every slide */}
        {this.state.virtualData.slides.map((slide, index) => (
          <div className="swiper-slide"
            key={index}
            style={{left: `${virtualData.offset}px`}}
          >{slide}</div>
        ))}
      </div>
    </div>
    {/* ... */}
  }
}

Hash Navigation ハッシュ

各スライドにdata-hash=”slide1″のような感じでdata-hashを設置すると、url#slide1といったurlでdata-hashが一致するところからスライドが始まる。

ハッシュナビゲーションは、特定のスライドへのリンクを持ち、特定のスライドを開いた状態でページをロードできるようにすることを目的としています。

動作させるには、hashNavigation:trueパラメータを渡して有効にし、data-hash属性にスライドハッシュを追加する必要があります。:

<div class="swiper-container">
  <div class="swiper-wrapper">
    <div class="swiper-slide" data-hash="slide1">Slide 1</div>
    <div class="swiper-slide" data-hash="slide2">Slide 2</div>
    <div class="swiper-slide" data-hash="slide3">Slide 3</div>
    <div class="swiper-slide" data-hash="slide4">Slide 4</div>
    <div class="swiper-slide" data-hash="slide5">Slide 5</div>
    ...
  </div>
</div>
const swiper = new Swiper('.swiper-container', {
  //enable hash navigation
  hashNavigation: true,
});

Hash Navigation Parameters

NameTypeDefaultDescription
hashNavigationHashNavigationOptions | boolean 

スライドへのハッシュURLナビゲーションを有効にします。ハッシュナビゲーションのパラメータを持つオブジェクト、またはデフォルト設定で有効にするにはtrueを指定します。

const swiper = new Swiper('.swiper-container', {
  hashNavigation: {
    replaceState: true,
  },
});
{
replaceStatebooleanfalse

hashnavに加えて、現在のURLの状態を履歴に追加するのではなく、新しいものに置き換えるように動作します。

スライダーが移動する度にURLにハッシュタグもつくようになる。ブラウザの戻るボタンがめんどくさくなるから正直どうなんだろうなって部分もある。
それを、これtrueにすれば大丈夫になる。
内部機能でいうと、ハッシュつきのURLを履歴に残すんじゃなくてURLだけで履歴残すとかそんなん。
デフォルトではfalse。

watchStatebooleanfalse

trueに設定すると、ブラウザの履歴やドキュメントの場所に直接ハッシュを設定することで、(hashnavが有効な場合)スライドのナビゲーションも可能になります。

ブラウザで戻るボタンとか押してハッシュタグが変わったりしたときにそれを認識してスライドも移動する。
デフォルトではfalse。

}

Hash Navigation Events

NameArgumentsDescription
hashChange(swiper)

Event will be fired on window hash change

hashSet(swiper)

Event will be fired when swiper updates the has

History Navigation

スライドする度にURLを書き換える。ちょっと何に使うかわからないですね。

 

History Navigation Parameters

NameTypeDefaultDescription
historyHistoryOptions | boolean 

すべてのスライドが独自のURLを持つ、ヒストリープッシュ状態を有効にします。このパラメータでは、"slides"のようにメインのスライドのURLを指定し、data-history属性を使って各スライドのURLを指定する必要があります。

ヒストリーナビゲーションのパラメータを持つオブジェクト、またはデフォルト設定で有効にする場合はtrue

const swiper = new Swiper('.swiper-container', {
  history: {
    replaceState: true,
  },
});
<!-- will produce "slides/slide1" url in browser history -->
<div class="swiper-slide" data-history="slide1"></div>
{
keystring'slides'

Url key for slides

URLにつく文字を指定できる。

replaceStatebooleanfalse

hashnavやhistoryに加えて動作し、現在のURLの状態をhistoryに追加するのではなく、新しいものに置き換えます。

この機能を実装してるとブラウザの戻るボタンがめんどくさくなるから正直どうなんだろうなって部分もある。
それを、これtrueにすれば大丈夫になる。
内部機能でいうと、URLを履歴に残すんじゃなくてURLを置き換えるみたいな。
デフォルトではfalse。

rootstring''

Swiperページのルートは、Swiper履歴モードを使用するときに、ルートWebサイトのページではなく、指定するのに便利です。例えば、https://my-website.com/、https://my-website.com/subpage/、/subpage/などです。

}

Controller

複数スライダーがある時に、片方のスライダーを操作したらもう片方のスライダーも一緒に動くようにしたい!そんな願いを叶えます。
2つの場合はこんなん。

1
2
3
4
5
6
var Swiper1 = new Swiper('#swiper-container1');
var Swiper2 = new Swiper('#swiper-container2',{
  controller: {
    control: Swiper1, // ここに1つ目のスライダーの変数名
  },
})

それより多いならこっちのがいいかも。

1
2
3
4
5
6
7
var Swiper1 = new Swiper('#swiper-container1');
var Swiper2 = new Swiper('#swiper-container2');
var Swiper3 = new Swiper('#swiper-container3',{
  controller:{
    control: [Swiper1, Swiper2], // ここに1つ目と2つ目のスライダーの変数名
  },
})

後からこれで追加もできる。

1
2
3
4
5
6
7
8
Swiper1.controller.control = Swiper2;
Swiper2.controller.control = Swiper1;
 
//ちなみに以下のような書き方でもOKだった。
Swiper1.controller.control = [Swiper2];
Swiper2.controller.control = [Swiper1];

inverse: trueだと動きが逆になる。デフォルトではfalse。

Swiper2の実行前(Swiper2の行まで実行されていない)に、Swiper1の中で、Swiper2に関するコントローラー処理をやってもうまく行かない。

[Rails]Swiperで画像スライド作成 - Qiita
#完成イメージ#Swiperとはスライダー(カルーセル)が作れるJavaScriptライブラリです。しかもPCでもスマホでも使えて、レスポンシブ対応可能!引用元…
 
    var mySwiper1 = new Swiper('.swiper1', {
     省略。ここでcontroller...mySwiper2は定義しない }); var mySwiper2 = new Swiper('.swiper2', { slideToClickedSlide: true, // スライドクリックでそのスライドに移動する centeredSlides: true, // センター表示 slidesPerView: 3, // 一度に表示するスライド数を指定 controller: { control: mySwiper1, // 連動させるSwiperの定義名を指定 by: 'slide', // 連動Swiperをスライド単位で制御 }, }); mySwiper1.controller.control = mySwiper2; //mySwiperを実行したあとで、このコードを実行しなければならない。

Controller Parameters コントローラ

NameTypeDefaultDescription
controllerControllerOptions 

コントローラのパラメータを持つオブジェクト、またはデフォルト設定で有効にする場合はtrue

const swiper = new Swiper('.swiper-container', {
  controller: {
    inverse: true,
  },
});
{
by'slide' | 'container''slide'

他のスライダをコントロールする方法を定義します。スライドごと(他のスライダのグリッドを基準にして)、またはすべてのスライド/コンテナに依存して(スライダの合計パーセンテージに依存して)コントロールします。

‘slide’もしくは’container’。どちらをベースに制御するかを選択できる。
デフォルトでは’slide’

controlSwiper | 

別のSwiperインスタンス、またはこのSwiperによって制御されるべきSwiperインスタンスの配列を渡します。

inversebooleanfalse

trueに設定すると、制御が逆方向になります。

}

Controller Methods

Properties
swiper.controller.controlSwiper

別のSwiperインスタンス、またはこのSwiperによって制御されるべきSwiperインスタンスの配列を渡します。

Accessibility (a11y)

音声やスクリーンリーダーを使用するなら。

1
2
3
4
5
6
var mySwiper = new Swiper('.swiper-container', {
  a11y: {
    prevSlideMessage: 'Previous slide',
    nextSlideMessage: 'Next slide',
  },
});

Accessibility Parameters

NameTypeDefaultDescription
a11yA11yOptions 

a11yパラメータを持つオブジェクト、またはデフォルト設定で有効にする場合はtrue。

const swiper = new Swiper('.swiper-container', {
  a11y: {
    prevSlideMessage: 'Previous slide',
    nextSlideMessage: 'Next slide',
  },
});
{
containerMessagestring | nullnull

外側のスワイパーコンテナのスクリーンリーダー用メッセージ

containerRoleDescriptionMessagestring | nullnull

スクリーンリーダーのために、外側のスワイパーコンテナの役割を説明するメッセージ

enabledbooleantrue

Enables A11y

firstSlideMessagestring'This is the first slide'

スワイパーが最初のスライドにいるときに前のボタンを押すと、スクリーンリーダー用のメッセージが表示される

最初のスライドの時に出るスクリーンリーダーでの文字。
デフォルトでは’This is the first slide’。

itemRoleDescriptionMessagestring | nullnull

スライド要素の役割を説明するスクリーンリーダー用メッセージ

lastSlideMessagestring'This is the last slide'

Message for screen readers for previous button when swiper is on last slide

最後のスライドの時に出るスクリーンリーダーでの文字。
デフォルトでは’This is the last slide’。

nextSlideMessagestring'Next slide'

Message for screen readers for next button

次ボタンのスクリーンリーダーでの文字。
デフォルトでは’Next slide’。

notificationClassstring'swiper-notification'

CSS class name of A11y notification

a11yを使用したら追加されるクラス名。
デフォルトでは’swiper-notification’

paginationBulletMessagestring'Go to slide {{index}}'

Message for screen readers for single pagination bullet

paginationで使用するスクリーンリーダーでの文字。
デフォルトでは’Go to slide {{index}}’

prevSlideMessagestring'Previous slide'

前ボタンのスクリーンリーダー用メッセージ

slideLabelMessagestring'{{index}} / {{slidesLength}}'

スライド要素のラベルを説明するスクリーンリーダー用メッセージ

slideRolestring'group'

Value of swiper slide role attribute

}

Custom Build

You have two options of making custom version of Swiper.

Using JS Modules

If you use bundler with JS modules support in your project you can import only the modules you need:

// Import Swiper and modules
import SwiperCore, { Navigation, Pagination, Scrollbar } from 'swiper/core';

// Install modules
SwiperCore.use([Navigation, Pagination, Scrollbar]);

// Now you can use Swiper
const swiper = new Swiper('.swiper-container', {
  speed: 500,
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
  // ...
});

The following modules are exported:

  • Swiper - core library
  • Virtual - Virtual Slides module
  • Keyboard - Keyboard Control module
  • Mousewheel - Mousewheel Control module
  • Navigation - Navigation module
  • Pagination - Pagination module
  • Scrollbar - Scrollbar module
  • Parallax - Parallax module
  • Zoom - Zoom module
  • Lazy - Lazy module
  • Controller - Controller module
  • A11y - Accessibility module
  • History - History Navigation module
  • HashNavigation - Hash Navigation module
  • Autoplay - Autoplay module
  • EffectFade - Fade Effect module
  • EffectCube - Cube Effect module
  • EffectFlip - Flip Effect module
  • EffectCoverflow - Coverflow Effect module
  • Thumbs - Thumbs module

Using Build Script

Swiper comes with gulp builder that allows to build custom library version where you may include only required modules. We need the following:

  1. Download and unzip Swiper GitHub repository to local folder
  2. Install Node.js (if not installed)
  3. Now, we need to install required dependencies. Go to the folder with downloaded and unzipped Swiper repository and execute in terminal:$ npm install
  4. Open scripts/build-config.js file:module.exports = { // remove components you don't need components: [ 'virtual', 'keyboard', 'mousewheel', 'navigation', 'pagination', 'scrollbar', 'parallax', 'zoom', 'lazy', 'controller', 'a11y', 'history', 'hash-navigation', 'autoplay', 'effect-fade', 'effect-cube', 'effect-flip', 'effect-coverflow', 'thumbs', ], // default color of navigation elements themeColor: '#007aff', // additional color to be included colors: { white: '#ffffff', black: '#000000', }, };
  5. Now, we are ready to build custom version of Swiper:$ npm run build:prod
  6. That is all. Generated CSS and JS files and their minified versions will be available in package/ folder.

TypeScript Definitions

Swiper (since version 6) is fully typed, it exports Swiper and SwiperOptions types:

// main.ts
import { Swiper, SwiperOptions } from 'swiper';

const swiperParams: SwiperOptions = {
  slidesPerView: 3,
  spaceBetween: 50,
};

const swiper = new Swiper('.swiper-container', swiperParams);

You can also check auto generated TypeScript definitions explorer for all the types, options, properties and methods.

タイトルとURLをコピーしました