画像をモーダルウインドウに拡大表示する方法【HTML/CSS/JavaScript・サンプルコード付き】

モーダルウインドウ

画像をモーダルウインドウに拡大表示する方法

画像をモーダルウインドウに拡大表示する方法を紹介します。このサンプルでは、サムネイル画像をクリックするとモーダルウインドウが表示され、画像を大きなサイズで確認できます。閉じるボタンをクリックするとモーダルが閉じるシンプルな構成になっており、HTML・CSS・JavaScriptだけで実装できます。

商品画像の拡大表示、作品ギャラリー、写真一覧、プロフィール画像の確認、お問い合わせ画面や管理画面など、画像を詳しく見せたいWebサイトで利用できます。画像を別ページへ移動させることなく閲覧できるため、操作性やユーザー体験の向上にも役立ちます。

掲載しているコードは画像ファイルを差し替えるだけで利用でき、モーダルサイズや背景色、余白、アニメーション速度なども簡単に変更できます。スマートフォン・タブレット・PCでもレイアウトが崩れにくいレスポンシブ対応のサンプルなので、そのまま実際のWebサイトへ導入しやすい構成です。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

画像モーダル

下の画像をクリックするとモーダルウインドウで拡大表示されます。

サンプル画像
拡大画像

画像をクリックするとモーダルウインドウで拡大表示されます。
※ デモでは https://picsum.photos のサンプル画像を使用しています。配布用コードには画像ファイルは含まれていませんので、お手持ちの画像を images/image.jpg として配置してください。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コード -->
  <meta charset="UTF-8">

  <!-- スマートフォン表示対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>画像をモーダルウインドウに拡大表示する方法</title>

  <!-- CSSファイルを読み込み -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- コンテンツ全体 -->
  <div class="image-modal_wrap">

    <!-- タイトル -->
    <h1 class="image-modal_title">
      画像モーダル
    </h1>

    <!-- 説明文 -->
    <p class="image-modal_text">
      画像をクリックするとモーダルウインドウで拡大表示します。
    </p>

    <!--
      サムネイル画像
      images/image.jpg をお手持ちの画像へ差し替えると表示する画像を変更できる
      この画像をクリックするとモーダルウインドウが開く
    -->
    <img
      src="images/image.jpg"
      alt="サンプル画像"
      class="image-modal_thumb"
      data-image-modal-open>

  </div>

  <!-- モーダル背景 -->
  <div
    class="image-modal_overlay"
    data-image-modal-overlay>

    <!-- モーダル本体 -->
    <div class="image-modal_box">

      <!-- 閉じるボタン -->
      <button
        class="image-modal_close"
        type="button"
        data-image-modal-close>
        ×
      </button>

      <!--
        拡大画像
        images/image.jpg をお手持ちの画像へ差し替えるとモーダル内へ表示する画像を変更できる
        サムネイル画像と同じ画像を指定するとクリック前後で自然な拡大表示になる
      -->
      <img
        src="images/image.jpg"
        alt="拡大画像">

    </div>

  </div>

  <!-- JavaScriptファイルを読み込み -->
  <script src="script.js"></script>

</body>
</html>

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLに画面構成、CSSにデザイン、JavaScriptにモーダルの開閉処理を分けているため、それぞれの役割が分かりやすく、初心者でも編集しやすい構成です。画像ファイルは配布していないため、お手持ちの画像を用意して配置してください。

sample/
├── index.html
├── style.css
├── script.js
└── images/
    └── image.jpg

各ファイルの役割
index.html は画面のレイアウトとモーダルの構造を定義しています。style.css は画像サイズやモーダルデザイン、背景、アニメーションなどの見た目を管理します。script.js は画像クリック時のモーダル表示と閉じるボタンの処理を担当します。images/image.jpg は表示・拡大する画像です。配布用コードには画像は含まれていないため、お手持ちの画像を配置してください。

設置方法・使い方
sample フォルダへ各ファイルを配置し、お手持ちの画像を sample/images/image.jpg として保存してください。その後、sample/index.html をブラウザで開くと動作を確認できます。画像をクリックするとモーダルウインドウで拡大表示されます。

カスタマイズできる内容
表示する画像は images/image.jpg を差し替えるだけで変更できます。タイトルや説明文は index.html、背景色やモーダルサイズ、角丸、影などは style.css で自由に編集できます。

数値調整
style.cssmax-width:900px; を変更すると拡大画像の最大サイズが変わります。animation: image-modal-show .3s;.3s は表示アニメーション時間です。値を大きくするとゆっくり表示され、小さくすると素早く表示されます。

レスポンシブ対応
レスポンシブ対応済みです。style.csswidth:100%max-widthmax-height:85vh、および @media (max-width:640px) により、スマートフォン・タブレット・PCでもレイアウトが崩れにくく、画像を画面サイズに合わせて表示できます。


“`

コメント