本当によく見ると思うのですが、トップページで画像が変わっていくところありますよね。あれをカルーセルと言うのですが、Bootstrapならかんたんなコードを書くだけ作成することが出来ます。素晴らしいですね。
様々なサイトで、画像がスライドショーのように表示されるのを見た事があるかと思います。この画像切り替え機能、Bootstrapでは「カルーセル(Carousel)」という名前でテンプレートが用意されています。
カルーセルにはいくつか種類がありますが、 今回は下図の「With indicators」というテンプレートを使って説明します。
テンプレートの構造を見てみましょう。
まず「li data-target」という属性の部分ですが、これは上記イメージ下部の長方形が3つ並んでる部分にあたります。
そして「active」というCSSクラスが適用されている箇所ですが、ここは1枚目に表示される画像部分になります。この部分のコードがないと、他のコードに問題がなくてもカルーセルが表示されませんので注意してください。
画像を追加したい場合は、以下コード部分をコピぺしてください。 加えて、上記「li data-target」の部分のコードもコピぺする必要があります。そして「data-slide-to=2」の数字の部分に「総画像枚数ー1」の数字を入れます。これは、カウントが0から始まっている為です。
スライドする画像の上にテキストを乗せる方法です。
imgタグの下にキャプションの為のコードを記述します。 「carousel-caption」というCSSクラスを追加することで、キャプション部分がカルーセル画像下部に重なって表示されるようにBootstrapが設定してくれています。
「carousel-caption」の隣に記述されている「d-none」と「d-md-block」。 共通している「d」は「display」を意味しています。
2つ並べて書いているのは画面サイズが「Medium」以上の時は「display: block;」でキャプション部分を表示させる、「Medium」以下の時は「display: none;」で非表示にするという指定です。
「carousel.html」というファイルを作成し、カルーセルを動かしてみましょう。 imagesフォルダ内のfood1~3.jpgをカルーセルで表示します。
テンプレートは上記説明の「キャプション付き」でも使用したWith captionsと、フェード効果が加えられているCrossfadeの2つを作ってみて下さい。 どちらもテンプレートはCarousel-Bootstrapに掲載されています。
完成見本
そのままテンプレートコードのみを張り付けると横に広がりすぎるので、カルーセル全体を<div class="container">で囲っています。
With captionsのキャプション部分は
<h5>FOOD1</h5><!-- 画像に合わせて2,3と変更 -->
<p>SAMPLE TEXT sampletext SAMPLE TEXT sampletext SAMPLE TEXT sampletext</p>
など適当な文字を入れてください、
カルーセルは、使用する画像の横幅を全て100%に揃えてくれます。 (※カルーセル幅よりも画像幅が大きい場合のみ)
しかし、別途cssで設定しない限り、高さは揃えてくれません。 実習で作成したカルーセル画像の1枚を「a.jpg」に置き換えみると、高さが揃わずに動作がガタガタした印象になるはずです。これでは統一感が無く見にくいですよね。
カルーセルに入れる画像を用意するときには、縦横同サイズの画像を使用するのがベストではありますが、最低でも高さを揃えるようにしましょう。