カテゴリ: Bootstrap 更新日: 2026/08/23

Bootstrapモーダルで画像ビューアギャラリーを作る方法を完全解説!初心者向け比率とスワイプ対応ガイド

画像ビューア・ギャラリーをモーダルで作る:比率・スワイプ配慮
画像ビューア・ギャラリーをモーダルで作る:比率・スワイプ配慮

先生と生徒の会話形式で理解しよう

生徒

「Bootstrapのモーダルで画像ビューアやギャラリーは作れますか?」

先生

「はい、Bootstrap5のモーダル機能を使えば、初心者でも簡単に画像ギャラリーを作れます。」

生徒

「スマホでスワイプしたり、画像の比率が崩れないようにもできますか?」

先生

「できます。画像の縦横比を保つ方法や、タッチ操作への配慮もあわせて解説します。」

1. Bootstrapモーダルと画像ビューアの基本とは

1. Bootstrapモーダルと画像ビューアの基本とは
1. Bootstrapモーダルと画像ビューアの基本とは

Bootstrapモーダルとは、画面の上にふわっと表示されるウィンドウのことです。背景を暗くして、その上にコンテンツを表示します。画像ビューアや画像ギャラリーを作るときによく使われます。

画像ビューアとは、サムネイルと呼ばれる小さな画像をクリックすると、大きな画像を表示する仕組みのことです。ネットショップの商品ページや写真サイトでよく見かけます。

Bootstrap5では、特別な難しい設定をしなくても、クラスという決められた名前を指定するだけでモーダルが動きます。クラスとは、見た目や動きをまとめたラベルのようなものです。

これから、初心者向けに画像ギャラリーの作り方、比率の保ち方、スマホスワイプ対応まで順番に説明します。

2. 基本の画像ギャラリーをモーダルで作る方法

2. 基本の画像ギャラリーをモーダルで作る方法
2. 基本の画像ギャラリーをモーダルで作る方法

まずは、シンプルな画像ギャラリーを作ります。小さな画像をクリックするとモーダルが開き、大きな画像が表示される仕組みです。


<!-- サムネイル画像 -->
<img src="/img/sample150-100.jpg" class="img-thumbnail" data-bs-toggle="modal" data-bs-target="#imageModal">

<!-- モーダル -->
<div class="modal fade" id="imageModal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-body text-center">
<img src="/img/sample150-100.jpg" class="img-fluid">
</div>
</div>
</div>
</div>
ブラウザ表示

img-fluidは、画像を画面サイズに合わせて自動で縮小するクラスです。これを指定しないと、画像がはみ出すことがあります。

modal-dialog-centeredは、モーダルを画面の中央に表示するための設定です。

3. 画像の縦横比を保つ方法と比率の考え方

3. 画像の縦横比を保つ方法と比率の考え方
3. 画像の縦横比を保つ方法と比率の考え方

画像の比率とは、横と縦の長さのバランスのことです。たとえば横長の写真を無理やり縦に伸ばすと、顔が細長くなってしまいます。

Bootstrap5にはratioクラスがあり、特定の縦横比を保つことができます。


<div class="ratio ratio-16x9">
<img src="/img/sample150-100.jpg" class="img-fluid object-fit-cover">
</div>
ブラウザ表示

ratio-16x9は、横十六に対して縦九の比率を保つ指定です。動画サイトでよく使われる比率です。

object-fit-coverは、画像を枠いっぱいに表示しつつ、比率を保つための指定です。これにより、画像が自然に見えます。

4. 複数画像のギャラリー切り替え機能

4. 複数画像のギャラリー切り替え機能
4. 複数画像のギャラリー切り替え機能

複数の画像を表示したい場合は、クリックした画像をモーダル内に差し替える方法を使います。


<!-- サムネイル -->
<img src="/img/sample150-100.jpg" class="img-thumbnail gallery-img">
<img src="/img/sample120-120.jpg" class="img-thumbnail gallery-img">

<!-- モーダル -->
<div class="modal fade" id="galleryModal" tabindex="-1">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-body text-center">
<img id="modalImage" class="img-fluid">
</div>
</div>
</div>
</div>

<script>
document.querySelectorAll('.gallery-img').forEach(function(img){
img.addEventListener('click', function(){
document.getElementById('modalImage').src = this.src;
var modal = new bootstrap.Modal(document.getElementById('galleryModal'));
modal.show();
});
});
</script>
ブラウザ表示

この仕組みにより、どの画像をクリックしても同じモーダルを使い回すことができます。無駄がなく、管理もしやすくなります。

5. スマホスワイプ対応の考え方

5. スマホスワイプ対応の考え方
5. スマホスワイプ対応の考え方

スワイプとは、指で画面を横に動かす操作のことです。スマートフォンでは一般的な操作方法です。

スワイプ対応をするには、タッチイベントという仕組みを使います。イベントとは、クリックやタッチなどの動作をきっかけに処理を行う仕組みです。


<script>
let startX = 0;
let endX = 0;
const modalImg = document.getElementById('modalImage');

modalImg.addEventListener('touchstart', function(e){
startX = e.changedTouches[0].screenX;
});

modalImg.addEventListener('touchend', function(e){
endX = e.changedTouches[0].screenX;
if(endX - startX > 50){
alert('前の画像へ');
}
if(startX - endX > 50){
alert('次の画像へ');
}
});
</script>
ブラウザ表示

左右の動きの差が一定以上になったときに、次の画像や前の画像に切り替える処理を書きます。これにより、モバイル対応画像ギャラリーになります。

6. レスポンシブ対応と画面サイズへの配慮

6. レスポンシブ対応と画面サイズへの配慮
6. レスポンシブ対応と画面サイズへの配慮

レスポンシブとは、画面サイズに応じて表示が変わる仕組みのことです。パソコン、タブレット、スマートフォンで見やすくするために重要です。

Bootstrap5は最初からレスポンシブ設計です。modal-lgを使えば大きめ表示、modal-fullscreenを使えばスマホで全画面表示にできます。


<div class="modal-dialog modal-fullscreen-sm-down">
<div class="modal-content">
<div class="modal-body">
<img src="/img/sample150-100.jpg" class="img-fluid">
</div>
</div>
</div>
ブラウザ表示

modal-fullscreen-sm-downは、小さい画面のときだけ全画面にする指定です。スマホユーザーの体験を高めることができます。

7. SEO対策と画像最適化の基本

7. SEO対策と画像最適化の基本
7. SEO対策と画像最適化の基本

画像ギャラリーを作るときは、検索エンジン最適化も重要です。画像にalt属性を設定すると、検索エンジンが内容を理解しやすくなります。

alt属性とは、画像が表示できないときに代わりに表示される説明文です。Bootstrapモーダルであっても必ず設定しましょう。

また、ファイル名もimage1よりproduct-cameraのように意味のある名前にするとSEO効果が高まります。

Bootstrapモーダル画像ビューアギャラリーを作るときは、表示速度、比率維持、レスポンシブ対応、スワイプ対応、alt属性設定を意識することが大切です。

まとめ

まとめ
まとめ

今回はBootstrapモーダルを活用した画像ビューアギャラリーの作り方について、初心者向けに基礎から応用まで詳しく解説しました。Bootstrap5のモーダル機能を使えば、特別な難しい設定をしなくても、シンプルで見やすい画像ギャラリーを構築できます。画像サムネイルをクリックして拡大表示する仕組み、imgfluidによるレスポンシブ対応、ratioクラスによる縦横比の維持、objectfitcoverによる自然な表示制御など、実践的なテクニックを理解することで、実務でも使えるモーダル画像ビューアを実装できます。

また、複数画像を一つのモーダルで切り替える方法では、JavaScriptを活用してsrc属性を動的に変更する方法を紹介しました。これにより、効率的で保守性の高い画像ギャラリーが完成します。スマホ対応としては、タッチイベントを利用したスワイプ操作の基本的な考え方も重要です。touchstartとtouchendを活用することで、モバイルフレンドリーな画像スライダーやモーダルギャラリーを構築できます。

さらに、レスポンシブデザインを意識したmodalfullscreenやmodaldialogcenteredの使い分けも重要です。パソコン、タブレット、スマートフォンそれぞれで快適に閲覧できる設計は、ユーザー体験向上につながります。画像最適化の観点では、alt属性の設定、意味のあるファイル名、画像サイズの最適化などを徹底することで、検索エンジンからの評価も高まりやすくなります。

Bootstrapモーダル画像ギャラリーは、ポートフォリオサイト、商品紹介ページ、ブログ記事、写真ギャラリーサイトなど幅広い用途に活用できます。初心者でも理解できる基本構造を押さえつつ、応用的なカスタマイズを加えることで、実用的で見栄えの良いWebデザインが実現できます。

サンプルプログラムの総復習


<!-- サムネイル画像 -->
<img src="/img/sample150-100.jpg" class="img-thumbnail gallery-img" alt="ギャラリー画像一">
<img src="/img/sample120-120.jpg" class="img-thumbnail gallery-img" alt="ギャラリー画像二">

<!-- モーダル -->
<div class="modal fade" id="reviewModal" tabindex="-1">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-body text-center">
<div class="ratio ratio-16x9">
<img id="reviewImage" class="img-fluid object-fit-cover" alt="拡大画像表示">
</div>
</div>
</div>
</div>
</div>

<script>
document.querySelectorAll('.gallery-img').forEach(function(img){
img.addEventListener('click', function(){
document.getElementById('reviewImage').src = this.src;
var modal = new bootstrap.Modal(document.getElementById('reviewModal'));
modal.show();
});
});
</script>
ブラウザ表示

このように、Bootstrapモーダルと画像ギャラリーを組み合わせることで、拡張性の高いレスポンシブ対応画像ビューアが完成します。画像の縦横比維持、スマホスワイプ対応、JavaScriptによる動的切り替え、alt属性設定などを意識することが、実践的なWeb制作では重要です。

先生と生徒の振り返り会話

生徒

Bootstrapモーダルで画像ビューアギャラリーが作れる理由がよく分かりました。ratioクラスで縦横比を保つことや、imgfluidでレスポンシブ対応することが大切なのですね。

先生

その通りです。さらにJavaScriptでsrcを切り替えることで、複数画像対応のモーダルギャラリーになります。スマホではスワイプ操作も意識すると、より実用的になります。

生徒

alt属性の設定や画像最適化も重要だと理解しました。見た目だけでなく、検索エンジンや表示速度も意識することが大事なのですね。

先生

はい。Bootstrapモーダル画像ギャラリーは、デザインと機能性の両立がポイントです。今回学んだ内容を応用すれば、商品ページやポートフォリオでも活用できます。基礎をしっかり押さえれば、応用も難しくありません。

生徒

これから自分でもモーダル画像ビューアを作ってみます。レスポンシブ対応とスワイプ機能にも挑戦してみます。

先生

ぜひ実践してみてください。BootstrapとJavaScriptの基本を理解すれば、画像ギャラリー制作は確実に身に付きます。

2026年最新 スキルアップ・実践セミナー

【60分集中】CSSを1行も書かない!?Bootstrap 5ユーティリティクラス活用で開発工数を50%削減

「スピード」が武器になる。Bootstrap 5で商用クオリティのWebサイトを高速構築。

本講座では、世界シェアNo.1のフレームワークBootstrap 5を使いこなし、ゼロからレスポンシブサイトを組み上げる「現場最速のワークフロー」を学びます。単なる導入に留まらず、ユーティリティクラスを活用した効率化と、実務で必須となるカスタマイズ技法を60分で完全習得します。

具体的なワークショップ内容と環境

【つくるもの】
モダンなランディングページ(LP)やダッシュボードのプロトタイプを作成します。ナビゲーション、ヒーローセクション、カードレイアウト、フッターなど、Bootstrapのコンポーネントを組み合わせて「一瞬で形にする」感動を体験してください。

【開発環境】
VS CodeにBootstrap 5専用のSnippet(補完機能)を導入し、手入力を最小限にする環境を構築。最新のCDN利用法や、表示速度(Core Web Vitals)を意識した最適な読み込み設定など、プロの初期設定を伝授します。

この60分で得られる3つの革新スキル

1. グリッドシステムの完全マスター

スマホ・タブレット・PCでレイアウトを自由自在に切り替える「ブレイクポイント」の極意を学びます。

2. ユーティリティクラスによる爆速デザイン

CSSを1行も書かずに、マージン・パディング・カラーを制御。開発工数を半分以下にする実戦術を習得します。

3. 脱・標準デザインのカスタマイズ

「Bootstrap感」を消し、独自のブランドイメージに合わせるための、上書きの作法とデザインの整え方を伝授します。

※本講座は、HTML/CSSの基本を理解した方向けの「実践加速講座」です。制作会社のコーダーや副業フリーランスとして「案件の回転率」を上げ、市場価値を最大化させたい方をモクモクがバックアップします。

【60分集中】CSSを1行も書かない!?Bootstrap 5ユーティリティクラス活用で開発工数を50%削減

Bootstrap 5を楽しみながら、一緒に学びましょう!

各回少人数・マンツーマン形式で徹底サポート

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
New1
CSS
CSSでdisplayの違いを図解で理解!block・inline・inline-blockの使い方
New2
CSS
CSSのwidthとheightの基本!初心者でもわかる単位の使い分け
New3
CSS
z-indexによるバグを防ぐためのデバッグ方法完全ガイド!初心者向け解決テクニック
New4
HTML
HTML data-*属性とJavaScript連携を完全解説!datasetでカスタムデータを取得する方法
人気記事
No.1
Java&Spring記事人気No1
HTML
HTML inputタグとは?フォーム入力を担う基本要素を初心者向けに完全解説
No.2
Java&Spring記事人気No2
HTML
HTML formのaction URL設計を完全解説|送信先の考え方を初心者でも理解
No.3
Java&Spring記事人気No3
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.4
Java&Spring記事人気No4
CSS
レイヤー管理に便利なCSS変数とSCSS変数の活用法完全ガイド!初心者向け解説
No.5
Java&Spring記事人気No5
HTML
HTMLのformタグの書き方を完全ガイド!actionとmethod属性の意味を初心者向けにやさしく解説
No.6
Java&Spring記事人気No6
CSS
CSSのnth-child()を完全攻略!特定の順番にスタイルを当てる方法
No.7
Java&Spring記事人気No7
Bootstrap
Bootstrapで学ぶレスポンシブな並び方向の使い方完全ガイド!flex-rowとflex-columnを初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
Bootstrap
Bootstrapモーダルの基本実装を完全解説!data-bs-toggleとdata-bs-targetで簡単に開閉しよう