カルーセル(Carousel) v5.0.0設定変更
カルーセルのような要素の画像やスライドを循環させるためのスライドショーコンポーネント。
※"v5.0.0"での変更はv5.0.0-alpha版、v5.0.0-beta版での変更も含みます。
※"v5.3.0"での変更はv5.3.0-alpha版での変更も含みます。
使い方(How it works)
- カルーセルは、一連のコンテンツを循環するためのスライドショーで、CSS 3D変換とJavaScriptのビットで構築されている。一連のイメージ、テキスト、カスタムマークアップで動作。また、前後のコントロールとインジケータのサポートも組み込まれている。
- パフォーマンス上の理由から、カルーセルはカルーセル・コンストラクタ・メソッドを使用して手動で初期化する必要がある。初期化しない場合、イベントリスナーの一部(特にタッチ/スワイプサポートを必要とするイベント)は、ユーザーが明示的にコントロールまたはインジケータをアクティブにするまで登録されない。
唯一の例外はdata-bs-ride="carousel"
属性を持つカルーセルの自動再生で、これはページロード時に自動的に初期化されるため。データ属性を持つ自動再生カルーセルを使用する場合、コンストラクタ・メソッドで同じカルーセルを明示的に初期化しないこと。 - 入れ子になったカルーセルはサポートしていない。また一般的にカルーセルはユーザビリティやアクセシビリティの問題を引き起こすことが多いので注意が必要。
prefers-reduced-motion
メディアクエリに依存。詳細はアクセシビリティのモーションを小さくするに記載。
基本の設定(Basic examples)v5.3.0再構成
ここでは、3つのスライドを持つカルーセルの基本的な例を示す。前/次のコントロールにご注意下さい。<button>
要素の使用を推奨するが、role="button"
の <a>
要素の使用も可能。
前と次のコントロールを追加。<button>
要素の使用を推奨するが、<a>
要素と role="button"
の併用での使用もできる。
見本手動でスライドさせて下さい
Bootstrap5.xの設定例 緑背景が変更箇所
<div id="carouselExampleControls" class="carousel slide">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." class="d-block w-100" alt="第1スライド">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="第2スライド">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="第3スライド">
</div>
</div>
<button type="button" class="carousel-control-prev" data-bs-target="#carouselExampleControls" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">前へ</span>
</button>
<button type="button" class="carousel-control-next" data-bs-target="#carouselExampleControls" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">次へ</span>
</button>
</div>
※Bootstrap4.6.0の設定例 赤背景が変更箇所
<div id="carouselExampleControls" class="carousel slide">
<div class="carousel-inner">
...
</div>
<a class="carousel-control-prev" href="#carouselExample" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">前へ</span>
</a>
<a class="carousel-control-next" href="#carouselExample" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">次へ</span>
</a>
</div>
カルーセルは自動的にスライド寸法を正規化しない。従って、適切なサイズのコンテンツを作成するには、追加のユーティリティやカスタムスタイルを使用する必要がある。カルーセルは前/次のコントロールとインジケータをサポートしているが、これらは明示的に必須ではない。お好みで追加やカスタマイズして下さい。
.active
クラスを必ずスライドの1つに追加して下さい。そうしないと、カルーセルは表示されない。また、特に同一ページで複数のカルーセルを使用する場合は、オプションのコントロールの .carousel
に一意の id
を必ず設定して下さい。コントロールとインジケータ要素には、.carousel
要素の id
に一致する data-bs-target
属性(リンクの場合は href
)の指定が必要。
【設定】
div#ID.carousel.slide
> [div.carousel-inner
>div.carousel-inner
>div.carousel-item
>img.d-block.w-100
]《スライド画像》 + {[button.carousel-control-prev[data-bs-target="#ID"][data-bs-slide="prev"]
>span.carousel-control-prev-icon
](前へ) + [button.carousel-control-next[data-bs-target="#ID"][data-bs-slide="next"]
>span.icon-next
](次へ)}《スライドコントロール》div.carousel-item
に.active
を入れるとそのアイテムが最初に表示される(div.carousel-item.active
は必ずどれかに設定すること)
【注意】
- 基本の設定では
[data-bs-ride]
を外し、手動でスライドさせる仕様にしている(アクセシビリティの観点から、自動再生カルーセルの使用の回避を推奨)
【アクセシビリティの設定】
button.carousel-control-{prev|next}
(2ヶ所)に、span.carousel-control-{prev|next}-icon
(2ヶ所)に 、aria-hidden="true"
属性(スクリーンリーダー等での読み上げをスキップさせる)- 「前へ」と「次へ」を意味する
span.visually-hidden
(スクリーンリーダー等での読み上げをスキップさせる)
【変更履歴】
- 【v5.0.0-alpha2】
span.sr-only
⇒span.visually-hidden
- 【v5.0.0-beta1】
data-
属性に名前空間bs-
を追加[data-ride="carousel"]
⇒[data-bs-ride="carousel"]
[data-slide="prev"]
⇒[data-bs-slide="prev"]
[data-slide="next"]
⇒[data-bs-slide="next"]
- 【v5.0.0-beta2】(4.6.1でバックポート)
- スライドコントロール:
a.carousel-control-{prev|next}-icon[href="#ID" role="button" data-bs-slide]
⇒button[type="button"].carousel-control-{prev|next}-icon [data-bs-target="#ID" data-bs-slide]
- スライドコントロール:
インジケータ(Indicators)v5.0.0-beta2設定変更
カルーセルには、"前へ""次へ"コントロールと一緒にインジケータを追加できる。インジケータを使用すると、ユーザーは特定のスライドに直接ジャンプできる。
見本手動でスライドさせて下さい
Bootstrap5.xの設定例 緑背景が変更箇所
<div id="carouselExampleIndicators" class="carousel slide">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="スライド 1"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="スライド 2"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="スライド 3"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
...
</div>
<div class="carousel-item">
...
</div>
<div class="carousel-item">
...
</div>
</div>
<button type="button" class="carousel-control-prev" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev">
...
</button>
<button type="button" class="carousel-control-next" data-bs-target="#carouselExampleIndicators" data-bs-slide="next">
...
</button>
</div>
※Bootstrap4.xの設定例 赤背景が変更箇所
<div id="carouselExampleIndicators" class="carousel slide">
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-item active">
...
</div>
<div class="carousel-item">
...
</div>
<div class="carousel-item">
...
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
...
</a>
<a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
...
</a>
</div>
【設定】
div#ID.carousel.slide
> {div.carousel-indicators"
> [button[data-bs-target="#ID"][data-bs-slide-to="*"]
...]}《インジケータ》 + [div.carousel-inner
...]《スライド画像》 + {[button.carousel-control-prev
...] + [button.carousel-control-next
...]}《スライドコントロール》<button>
とdiv.carousel-item
の2ヶ所に.active
を入れるとそのアイテムが最初に表示されるdata-bs-slide-to="*"
は0
から順につける
【アクセシビリティの設定】
button.active
と同じ要素にaria-current="true"
(支援技術に現在のアイテムだと伝える)を入れる- インジケータとなる
<button>
に、aria-label
属性(インジケータボタンのラベリング)を入れる
【変更履歴】
- 【v5.0.0-beta1】
data-
属性に名前空間bs-
を追加[data-ride="carousel"]
⇒[data-bs-ride="carousel"]
[data-slide-to="*"]
⇒[data-bs-slide-to="*"]
[data-slide="prev"]
⇒[data-bs-slide="prev"]
[data-slide="next"]
⇒[data-bs-slide="next"]
- 【v5.0.0-beta2】
ol.carousel-indicators > <li>
⇒div.carousel-indicators > <button>
- アクセシビリティの設定を追加
キャプション(Captions)
.carousel-item
内の .carousel-caption
要素で、スライドにキャプションが追加できる。オプションの表示ユーティリティを使用すると、以下のように小のビューポートで簡単に非表示ができる。最初は .d-none
で非表示にし、.d-md-block
で中のビューポート以上で表示に戻る。
見本手動でスライドさせて下さい
設定例
<div id="carouselExampleCaptions" class="carousel slide">
<div class="carousel-indicators">
...
</div>
<!-- スライドさせる画像の設定 -->
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." alt="第1スライド" class="d-block w-100">
<div class="carousel-caption d-none d-md-block">
<h5>第1スライド ラベル</h5>
<p>1番目のスライドの代表的なプレースホルダコンテンツ。</p>
</div><!-- /.carousel-caption -->
</div><!-- /.carousel-item -->
...
</div><!-- /.carousel-inner -->
...
</div>
【設定】
div.carousel-item
> 〔img.d-block.w-100
《画像》 + {.carousel-caption.d-none.d-md-block
> [<h5>
《タイトル》 +<p>
《コンテンツ》]}《キャプション》〕《スライドアイテム》
【注意】
.carousel-caption
に.d-none.d-md-block
を追加しているので、モバイル(ビューポートが小以下)ではキャプションは表示されない
上記の設定を全て合わせると次のようになる:
Bootstrap5.xの設定例 緑背景が変更箇所
<div id="carouselOption1" class="carousel slide">
<!-- インジケータの設定 -->
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselOption1" data-bs-slide-to="0" class="active" aria-current="true" aria-label="スライド 1"></button>
<button type="button" data-bs-target="#carouselOption1" data-bs-slide-to="1" aria-label="スライド 2"></button>
<button type="button" data-bs-target="#carouselOption1" data-bs-slide-to="2" aria-label="スライド 3"></button>
</div>
<!-- スライドさせる画像の設定 -->
<div class="carousel-inner">
<div class="carousel-item active">
<img class="d-block w-100" src="..." alt="第1スライド">
<div class="carousel-caption d-none d-md-block">
<h5>第1スライド ラベル</h5>
<p>1番目のスライドの代表的なプレースホルダコンテンツ。</p>
</div>
</div>
<div class="carousel-item">
<img class="d-block w-100" src="..." alt="第2スライド">
<div class="carousel-caption d-none d-md-block">
<h5>第2スライド ラベル</h5>
<p>2番目のスライドの代表的なプレースホルダコンテンツ。</p>
</div>
</div>
<div class="carousel-item">
<img class="d-block w-100" src="..." alt="第3スライド">
<div class="carousel-caption d-none d-md-block">
<h5>第3スライド ラベル</h5>
<p>3番目のスライドの代表的なプレースホルダコンテンツ。</p>
</div>
</div>
</div>
<!-- スライドコントロールの設定 -->
<button type="button" class="carousel-control-prev" data-bs-target="#carouselOption1" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">前へ</span>
</button>
<button type="button" class="carousel-control-next" data-bs-target="#carouselOption1" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">次へ</span>
</button>
</div>
クロスフェード(Crossfade)v5.0.0-alpha2設定変更
カルーセルに .carousel-fade
を追加すると、スライドではなくフェード遷移でスライドをアニメーション化する。カルーセルのコンテンツ(テキストのみのスライドなど)によっては、適切なクロスフェードを行うために .carousel-item
に .bg-body
か任意の background-color
CSSを追加することを推奨。
見本手動でフェードさせて下さい
Bootstrap5.xの設定例 緑背景が変更箇所
<div id="carouselExampleFade" class="carousel slide carousel-fade">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." alt="第1スライド" class="d-block w-100">
</div>
<div class="carousel-item">
<img src="..." alt="第2スライド" class="d-block w-100">
</div>
<div class="carousel-item">
<img src="..." alt="第3スライド" class="d-block w-100">
</div>
</div>
<button type="button" class="carousel-control-prev" data-bs-target="#carouselExampleFade" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">前へ</span>
</button>
<button type="button" class="carousel-control-next" data-bs-target="#carouselExampleFade" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">次へ</span>
</button>
</div>
【設定】
.carousel.slide
に.carousel-fade
を追加
【変更履歴】
- 【v5.0.0-alpha2】
- スライドコントロールの設定変更(
span.sr-only
⇒span.visually-hidden
)
- スライドコントロールの設定変更(
- 【v5.0.0-beta1】
data-
属性に名前空間bs-
を追加
- 【v5.0.0-beta2】
- スライドコントロールの設定変更(
a.carousel-control-{prev|next}-icon
⇒button.carousel-control-{prev|next}-icon
)
- スライドコントロールの設定変更(
カルーセルの自動再生(Autoplaying carousels)v5.3.0新設
ride
オプションを carousel
に設定することで、ページロード時にカルーセルを自動再生させられる。自動再生されるカルーセルは、マウスでホバーされている間、自動的に一時停止する。この動作は pause
オプションで制御できる。Page Visibility APIをサポートするブラウザでは、ウェブページがユーザーから見えないとき(ブラウザのタブが非アクティブのときやブラウザ・ウィンドウが最小化されたときなど)カルーセルの循環は停止する。
アクセシビリティの観点から、自動再生カルーセルの使用の回避を推奨。自動再生カルーセルを使用する場合は、カルーセルを一時停止か停止するためのボタンやコントロールを追加することを推奨。
見本
設定例
<div id="carouselExampleAutoplaying" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleAutoplaying" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">前へ</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleAutoplaying" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">次へ</span>
</button>
</div>
ride
オプションが carousel
ではなく、true
に設定されている場合、カルーセルはページロード時に自動的に循環を開始しない。その代わり最初のユーザーインタラクションの後にのみ開始される。
見本
設定例
<div id="carouselExampleRide" class="carousel slide" data-bs-ride="true">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleRide" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">前へ</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleRide" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">次へ</span>
</button>
</div>
個別の .carousel-item
間隔(Individual .carousel-item
interval)v5.0.0-alpha2設定変更
.carousel-item
に data-bs-interval=""
を追加すると、自動的に次のアイテムに循環するまでの時間が変更できる。
見本
Bootstrap5.xの設定例 緑背景が変更箇所
<div id="carouselExampleInterval" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active" data-bs-interval="10000">
<img class="d-block w-100" src="..." alt="第1スライド">
</div>
<div class="carousel-item" data-bs-interval="20000">
<img class="d-block w-100" src="..." alt="第2スライド">
</div>
<div class="carousel-item">
<img class="d-block w-100" src="..." alt="第3スライト">
</div>
</div>
<button type="button" class="carousel-control-prev" data-bs-target="#carouselExampleInterval" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">前へ</span>
</button>
<button type="button" class="carousel-control-next" data-bs-target="#carouselExampleInterval" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">次へ</span>
</button>
</div>
【設定】
.carousel-item
に[data-bs-interval="数値"]
(数値は1000分の1秒単位でデフォルトは5000
)を入れる
【変更履歴】
- 【v5.0.0-alpha2】
- スライドコントロールの設定変更(
span.sr-only
⇒span.visually-hidden
)
- スライドコントロールの設定変更(
- 【v5.0.0-beta1】
data-
属性に名前空間bs-
を追加[data-interval="数値"]
⇒[data-bs-interval="数値"]
- 【v5.0.0-beta2】
- スライドコントロールの設定変更(
a.carousel-control-{prev|next}-icon
⇒button.carousel-control-{prev|next}-icon
)
- スライドコントロールの設定変更(
コントロールなしの自動再生カルーセル(Autoplaying carousels without controls)v5.3.0「スライドのみ」から変更
こちらはスライドのみのカルーセル。ブラウザのデフォルトの画像整列を防ぐために、カルーセルの画像に .d-block
と .w-100
がいるので注意。
見本
Bootstrap5.xの設定例 緑背景がv5.0.0-beta1での変更箇所
<div id="carouselExampleSlidesOnly" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img class="d-block w-100" src="..." alt="第1スライド">
</div>
<div class="carousel-item">
<img class="d-block w-100" src="..." alt="第2スライド">
</div>
<div class="carousel-item">
<img class="d-block w-100" src="..." alt="第3スライト">
</div>
</div>
</div>
タッチスワイプを無効にする(Disable touch swiping)v5.0.0-beta2新設(v4.6.0でバックポート)、v5.2.0設定変更
カルーセルは、タッチスクリーンデバイスで左右にスワイプするスライドの移動をサポートしている。これは touch
オプションを false
に設定することで無効にできる。
見本
Bootstrap5.2.0~の設定例
<div id="carouselExampleControlsNoTouching" class="carousel slide" data-bs-touch="false">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." alt="..." class="d-block w-100">
</div>
<div class="carousel-item">
<img src="..." alt="..." class="d-block w-100">
</div>
<div class="carousel-item">
<img src="..." alt="..." class="d-block w-100">
</div>
</div>
<button type="button" class="carousel-control-prev" data-bs-target="#carouselExampleControlsNoTouching" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">前へ</span>
</button>
<button type="button" class="carousel-control-next" data-bs-target="#carouselExampleControlsNoTouching" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">次へ</span>
</buttona>
</div>
※Bootstrap5.1.xの設定例 赤背景が変更箇所
<div id="carouselExampleControlsNoTouching" class="carousel slide" data-bs-touch="false" data-bs-interval="false">
<div class="carousel-inner">
...
</div>
</div>
【設定】
.carousel.slide
にdata-bs-touch="false"
を入れる
【変更履歴】
- 【v5.2.0】
.carousel
のdata-bs-interval="false"
の設定は不可になり削除
カルーセルでニュースティッカー ※裏技、v5.2.0設定変更
横スライド
見本
Bootstrap5.xの設定例 緑背景が変更箇所
<div id="carousel-ticker" class="carousel slide text-bg-info" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<p class="lead text-truncate mb-0 p-3">
<a href="#" class="text-white text-decoration-none">
<span class="fw-bold">記事の見出し 1</span>:この文章はダミーです。文字の大きさ、量、字間、行間等をご確認下さい。
</a>
</p>
</div>
<div class="carousel-item">
<p class="lead text-truncate mb-0 p-3">
<a href="#" class="text-white text-decoration-none">
<span class="fw-bold">記事の見出し 2</span>:この文章はダミーです。文字の大きさ、量、字間、行間等をご確認下さい。
</a>
</p>
</div>
<div class="carousel-item">
<p class="lead text-truncate mb-0 p-3">
<a href="#" class="text-white text-decoration-none">
<span class="fw-bold">記事の見出し 3</span>:この文章はダミーです。文字の大きさ、量、字間、行間等をご確認下さい。
</a>
</p>
</div>
<div class="carousel-item">
<p class="lead text-truncate mb-0 p-3">
<a href="#" class="text-white text-decoration-none">
<span class="fw-bold">記事の見出し 4</span>:この文章はダミーです。文字の大きさ、量、字間、行間等をご確認下さい。
</a>
</p>
</div>
<div class="carousel-item">
<p class="lead text-truncate mb-0 p-3">
<a href="#" class="text-white text-decoration-none">
<span class="fw-bold">記事の見出し 5</span>:この文章はダミーです。文字の大きさ、量、字間、行間等をご確認下さい。
</a>
</p>
</div>
</div>
</div>
縦スライド
See the Pen News ticker on Bootstrap5 carousel (vertical slide) by cccabinet (@cccabinet) on CodePen.
【変更履歴】
- 【v5.0.0-alpha1】
- 外部CSSの設定からできるだけBootstrapのユーティリティクラスを使用するように変更
- 【v5.2.0】
.bg-info.text-dark
⇒.text-bg-info
(従来のままでも動作に変更なし)
ダーク・バージョン(Dark variant)v5.0.0-alpha2新設 v5.3.0非推奨
.carousel-dark
を .carousel
に追加すると、コントロール、インジケーター、キャプションを暗くできる。コントロールは、filter
CSSプロパティでデフォルトの白いフィルと比較して反転される。キャプションとコントロールには、color
と background-color
のカスタマイズ用の追加のSass変数がある。
.carousel-dark
を追加する代わりにルート要素、親要素のラッパー、コンポーネント自体に data-bs-theme="dark"
を設定して下さい。
見本手動でスライドさせて下さい
Bootstrap5.xの設定例 緑背景がv5.0.0-beta1での変更箇所
<div id="carouselExampleDark" class="carousel carousel-dark slide">
...
</div>
【設定】
.carousel
に.carousel-dark
を追加
【変更履歴】
- 【v5.3.0】
- カラーモードの新設に伴い
.carousel-dark
は非推奨に(v5.3.0~でも使用できるがv6で廃止予定)
- カラーモードの新設に伴い
任意の遷移(Custom transition)v5.0.0-beta3「遷移間隔を変更」から変更
.carousel-item
の遷移期間は、コンパイル前の $carousel-transition-duration
Sass変数かコンパイル済のCSSを使用している場合は任意のスタイルに変更できる。複数の遷移が適用される場合は、transform 遷移が最初に定義されていることをご確認下さい(例:transition: transform 2s ease, opacity .5s ease-out
)。
CSS v5.0.0-beta3追加、v5.3.0Sassから名称変更
Sass変数(Sass variables)v5.3.0変数から名称変更
全てのカルーセルに対応する変数:
デフォルトの設定
scss/_variables.scss 内 carousel-variables の設定$carousel-control-color: $white;
$carousel-control-width: 15%;
$carousel-control-opacity: .5;
$carousel-control-hover-opacity: .9;
$carousel-control-transition: opacity .15s ease;
$carousel-indicator-width: 30px;
$carousel-indicator-height: 3px;
$carousel-indicator-hit-area-height: 10px;
$carousel-indicator-spacer: 3px;
$carousel-indicator-opacity: .5;
$carousel-indicator-active-bg: $white;
$carousel-indicator-active-opacity: 1;
$carousel-indicator-transition: opacity .6s ease;
$carousel-caption-width: 70%;
$carousel-caption-color: $white;
$carousel-caption-padding-y: 1.25rem;
$carousel-caption-spacer: 1.25rem;
$carousel-control-icon-width: 2rem;
$carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>");
$carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>");
$carousel-transition-duration: .6s;
$carousel-transition: transform $carousel-transition-duration ease-in-out; // 複数の遷移を使用する場合は、最初に transform 遷移を定義 (例:`transform 2s ease, opacity .5s ease-out`)
Darkカルーセル用の変数:
scss/_variables.scss 内 carousel-dark-variables の設定$carousel-dark-indicator-active-bg: $black;
$carousel-dark-caption-color: $black;
$carousel-dark-control-icon-filter: invert(1) grayscale(100);
使用方法(Usage)
データ属性経由で(Via data attributes)
データ属性を使用して、カルーセルの位置を簡単に制御。data-bs-slide
は、prev
や next
というキーワードを受け取り、スライドの現在の位置からの相対的な位置が変更される。あるいは、data-bs-slide-to
を使用して、スライドの位置を 0
から始まる特定のインデックスにシフトして、カルーセルの未処理のスライドインデックスを data-bs-slide-to="2"
に渡す。
JavaScript経由で(Via JavaScript)v5.2.0設定変更
手動でカルーセルを呼び出す:
Bootstrap5.2.0~の設定例 緑背景が5.2.0での変更箇所
JavaScriptconst carousel = new bootstrap.Carousel('#myCarousel')
※Bootstrap5.1.xの設定例 赤背景が5.2.0での変更箇所
JavaScriptvar myCarousel = document.querySelector('#myCarousel')
var carousel = new bootstrap.Carousel(myCarousel)
※Bootstrap4.xの設定例
JavaScript$('#myCarousel').carousel()
【変更履歴】
- 【v5.0.0-alpha1】
- JavaScriptの記述をjQueryに依存しない方法に変更
- 【v5.2.0】
- JavaScriptの記述をES6(ES2015)に変更
オプション(Options)v5.2.0一部変更
オプションは、データ属性かJavaScriptを経由して渡すことができるため、data-bs-animation="{value}"
のように、オプション名を data-bs-
に追加できる。データ属性を経由してオプションを渡す場合は、必ずオプション名の命名規則をキャメルケース(単語の先頭を大文字にする)からケバブケース(単語をハイフンでつなぐ)にご変更下さい。例:data-bs-customClass="beautifier"
ではなく、data-bs-custom-class="beautifier"
を使用する。
Bootstrap 5.2.0以降、すべてのコンポーネントは、JSON文字列として単純なコンポーネント構成を格納できる実験的な予約済データ属性 data-bs-config
をサポート。要素に data-bs-config='{"delay":0, "title":123}'
と data-bs-title="456"
属性がある場合、最終的な title
値は 456
になり、個別のデータ属性は data-bs-config
で指定された値を再定義する。さらに、既存のデータ属性には、data-bs-delay='{"show":0,"hide":150}'
のようなJSON値を格納できる。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
interval v5.2.0一部変更 |
number | 5000 |
アイテムを自動的に循環させるまでの遅延時間(1000分の1秒単位)。 |
keyboard |
boolean | true |
カルーセルが、キーボードのイベントに反応すべきかどうか指定true :有効/false :無効 |
pause |
string | boolean | 'hover' |
タッチ対応デバイスでは、 |
ride v5.0.0-beta2「slide」から再変更 |
string | boolean | false |
true に設定すると、ユーザーが最初のアイテムを手動で循環させた後、カルーセルが自動再生。'carousel' に設定している場合、読み込み時にカルーセルが自動再生。 |
touch |
boolean | true |
カルーセルがタッチスクリーンデバイス上で左右のスワイプ相互作用をサポートするかどうか。true :有効/false :無効 |
wrap |
boolean | true |
カルーセルが、連続的に循環するか強制停止するかどうか。true :有効/false :無効 |
【変更履歴】
- 【v5.0.0-alpha1】
ride
オプションはslide
に名称変更し、タイプにboolean
が追加
- 【v5.0.0-beta2】
slide
オプションの名称をride
に戻す
- 【v5.2.0】
interval
のfalse
の設定は不可に
メソッド(Methods)v5.0.0-alpha1設定変更、一部変更、v5.0.2メソッド追加
カルーセル・インスタンスはカルーセル・コンストラクタで作成し、追加のオプションを渡せる。例えば、自動再生するカルーセル(マークアップ自体で data-bs-ride="carousel"
属性を使用していないと仮定)を特定の間隔で、タッチサポートを無効にして手動で初期化するには、以下のようにする:
Bootstrap5.2.0~の設定例 緑背景が5.2.0での変更箇所
JavaScriptconst myCarouselElement = document.querySelector('#myCarousel')
const carousel = new bootstrap.Carousel(myCarouselElement, {
interval: 2000,
touch: false
})
※Bootstrap5.1.xの設定例 赤背景が5.2.0での変更箇所
JavaScriptvar myCarousel = document.querySelector('#myCarousel')
var carousel = new bootstrap.Carousel(myCarousel, {
interval: 2000,
touch: false
})
※Bootstrap4.xの設定例
JavaScript$('#myCarousel').carousel({
interval: 2000,
touch: false
})
メソッド | 説明 |
---|---|
cycle |
カルーセルのアイテムを左から右へ循環させ始める。 |
dispose |
要素のカルーセルを破棄(DOM要素に保存されているデータを削除)。 |
getInstance v5.0.0-alpha1追加 |
DOM要素に関連付けられたカルーセル・インスタンスを取得できる静的メソッド。次のように使用可能:bootstrap.Carousel.getInstance(element) |
getOrCreateInstance v5.0.2追加 |
DOM要素に関連付けられたカルーセル・インスタンスを返すか、初期化されていない場合は新規に作成する静的メソッド。次のように使用可能:bootstrap.Carousel.getOrCreateInstance(element) |
next |
次のアイテムに循環。次のアイテムが表示される前(つまり、slid.bs.carousel イベントが発生する前)に呼び出し元に戻る。 |
nextWhenVisible v5.0.0-alpha1追加 |
ページ、カルーセル、カルーセルの親要素が表示されていないときに、カルーセルを次に循環させないようにする。ターゲットアイテムが表示される前に呼び出し元に戻る。 |
pause |
カルーセルのアイテムの循環を停止。 |
prev |
前のアイテムに循環。前のアイテムが表示される前(つまり、slid.bs.carousel イベントが発生する前)に呼び出し元に戻る。 |
to v5.0.0-alpha1「number」から変更 |
カルーセルを特定のフレームに循環させる(配列と同様に0から数える)。ターゲットアイテムが表示される前(つまり、slid.bs.carousel イベントが発生する前)に呼び出し元に戻る。 |
【変更履歴】
- 【v5.0.0-alpha1】
$().carousel('xxx')
⇒carousel.xxx()
nextWhenVisible
,getInstance
メソッドが追加number
メソッドは、to
に名称変更
- 【v5.0.2】
getOrCreateInstance
メソッドが追加
- 【v5.2.0】
- JavaScriptの記述をES6(ES2015)に変更
イベント(Events)
Bootstrapのカルーセルクラスは、カルーセル機能に接続するために2つのイベントを公開する。両方のイベントには、次の追加プロパティがある:
direction
:カルーセルのスライドされる方向("left"
か"right"
のいずれか)relatedTarget
:アクティブなアイテムとして配置されているDOM要素from
:現在のアイテムのインデックスto
:次のアイテムのインデックス
すべてのカルーセルのイベントは、カルーセル自体(すなわち <div class="carousel">
)で発動。
イベントタイプ | 説明 |
---|---|
slid.bs.carousel |
カルーセルのスライド遷移が完了すると直ちに発動。 |
slide.bs.carousel |
slide のインスタンス・メソッドが呼び出されると直ちに発動。 |
使用例 v5.2.0設定変更
JavaScriptconst myCarousel = document.getElementById('myCarousel')
myCarousel.addEventListener('slide.bs.carousel', event => {
// 何かをする...
})