画像をドロワーメニューに拡大表示する方法【HTML/CSS/JavaScript・サンプルコード付き】

ドロワーメニュー

画像をドロワーメニューに拡大表示する方法

画像をドロワーメニューに拡大表示する方法を紹介します。このサンプルでは、ページ内に表示された画像の「画像を拡大表示」ボタンをクリックすると、画面左側からドロワーメニューが開き、同じ画像を大きなサイズで確認できます。HTMLで画像とドロワーメニューの構造を作成し、CSSで表示サイズやレイアウトを設定、JavaScriptで開閉処理を制御します。

商品写真、作品画像、施工事例、旅行写真など、ページ内では小さく表示している画像を詳しく見せたい場面に利用できます。画像はドロワーメニューの横幅に合わせて自動的に縮小されるため、元画像の縦横比を保ったまま表示できます。

ドロワーメニューは「閉じる」ボタンまたは背景部分をクリックすると閉じられます。表示する画像はHTML内の画像URLと代替テキストを書き換えることで変更でき、ドロワーメニューの横幅、余白、角丸、影、表示アニメーションなどはCSSで調整できます。

コードについて
本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項
本記事のコードを利用したことによる損害について、当サイトでは責任を負いかねます。必要に応じて環境に合わせて調整してください。

デモ

画像をドロワーメニューに拡大表示

サムネイル画像をクリックすると、ドロワーメニュー内へ拡大表示できます。

サムネイル画像をクリックすると、選択した画像をドロワーメニュー内へ拡大表示できます。
「閉じる」ボタンまたは背景部分をクリックするとドロワーメニューを閉じられます。

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

<!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-drawer-enlarge_wrap">

    <!-- タイトル -->
    <div class="image-drawer-enlarge_title">
      画像をドロワーメニューに拡大表示
    </div>

    <!-- 操作説明 -->
    <p class="image-drawer-enlarge_text">
      サムネイル画像をクリックすると、ドロワーメニュー内へ拡大表示できます。
    </p>

    <!-- サムネイル画像一覧 -->
    <div class="image-drawer-enlarge_gallery">

      <!-- 1枚目の画像
           data-drawer-image="" の中へ拡大表示する画像URLを入力する
           src="" の中へサムネイルとして表示する画像URLを入力する
           alt="" の中へ画像内容が分かる説明文を入力する -->
      <button
        class="image-drawer-enlarge_thumb"
        type="button"
        data-drawer-image="https://picsum.photos/seed/gal1/900/600">

        <img
          src="https://picsum.photos/seed/gal1/600/400"
          alt="森林の中に続く小道">

      </button>

      <!-- 2枚目の画像
           data-drawer-image="" の中へ拡大表示する画像URLを入力する
           src="" の中へサムネイルとして表示する画像URLを入力する
           alt="" の中へ画像内容が分かる説明文を入力する -->
      <button
        class="image-drawer-enlarge_thumb"
        type="button"
        data-drawer-image="https://picsum.photos/seed/gal2/900/600">

        <img
          src="https://picsum.photos/seed/gal2/600/400"
          alt="夜の街と橋の風景">

      </button>

      <!-- 3枚目の画像
           data-drawer-image="" の中へ拡大表示する画像URLを入力する
           src="" の中へサムネイルとして表示する画像URLを入力する
           alt="" の中へ画像内容が分かる説明文を入力する -->
      <button
        class="image-drawer-enlarge_thumb"
        type="button"
        data-drawer-image="https://picsum.photos/seed/gal3/900/600">

        <img
          src="https://picsum.photos/seed/gal3/600/400"
          alt="レコードプレーヤーの写真">

      </button>

    </div>

  </div>

  <!-- ドロワーメニュー表示時の背景 -->
  <div
    class="image-drawer-enlarge_overlay"
    data-drawer-overlay
    aria-hidden="true">

    <!-- ドロワーメニュー本体 -->
    <div
      class="image-drawer-enlarge_drawer"
      role="dialog"
      aria-modal="true"
      aria-labelledby="image-drawer-enlarge-title">

      <!-- ドロワーメニューのタイトル -->
      <div
        class="image-drawer-enlarge_drawer-title"
        id="image-drawer-enlarge-title">
        拡大画像
      </div>

      <!-- 選択した画像の拡大表示先 -->
      <img
        class="image-drawer-enlarge_large"
        src=""
        alt=""
        data-drawer-large-image>

      <!-- ドロワーメニューを閉じるボタン -->
      <button
        class="image-drawer-enlarge_close"
        type="button"
        data-drawer-close>
        閉じる
      </button>

    </div>

  </div>

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

</body>
</html>

ファイル構成と設置方法

このサンプルは、HTML・CSS・JavaScriptの3ファイルで構成されています。サムネイル画像をクリックすると、選択した画像をドロワーメニュー内へ拡大表示できるサンプルです。画像はHTMLで管理し、見た目はCSS、画像の切り替えやドロワーの開閉はJavaScriptが担当しています。

ドロワーメニューは画面左側からスライド表示され、選択した画像だけを大きく表示します。画像を追加したり差し替えたりする場合も、HTMLを書き換えるだけで利用できるため、商品一覧や作品ギャラリー、写真紹介ページなどにも応用できます。

レスポンシブにも対応しており、パソコン・タブレット・スマートフォンでもレイアウトが崩れにくい構成です。画像サイズやドロワーメニューの幅、アニメーション速度などもコード内のコメントを参考に変更できます。

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

各ファイルの役割
index.html
サムネイル画像・ドロワーメニュー・拡大画像のHTMLを記述しています。画像を変更する場合は、各画像の「src」「data-drawer-image」「alt」を編集してください。画像を追加・削除する場合も、このファイルを編集します。

style.css
サムネイル一覧、ドロワーメニュー、拡大画像、ボタン、レスポンシブ表示などデザイン全体を管理しています。色・余白・サイズ・角丸・影・アニメーションなどを変更できます。

script.js
サムネイル画像をクリックした際に拡大画像へ切り替え、ドロワーメニューを表示・非表示にする処理を記述しています。

設置方法・使い方
sampleフォルダへ index.html・style.css・script.js を配置します。
ブラウザで sample/index.html を開くと利用できます。
サムネイル画像をクリックすると、対応する画像がドロワーメニュー内へ拡大表示されます。閉じるボタン、または背景部分をクリックするとドロワーメニューを閉じられます。

カスタマイズできる内容
index.html
・サムネイル画像の追加・削除
・画像URL(src)の変更
・拡大表示する画像URL(data-drawer-image)の変更
・画像説明(alt)の変更
・タイトル・説明文の変更

style.css
・サムネイル画像の大きさ
・画像の並び数
・ドロワーメニューの幅
・背景色・文字色
・余白・角丸・影
・ボタンデザイン
・アニメーション速度

数値調整
style.css
animation:image-drawer-enlarge-slide .35s;
→ 0.35秒でドロワーメニューを表示します。値を大きくするとゆっくり、小さくすると速く表示されます。

width:520px;
→ ドロワーメニューの横幅です。値を大きくすると広く、小さくすると細くなります。

height:140px;
→ サムネイル画像の高さです。値を変更すると一覧画像の高さが変わります。

max-height:70vh;
→ 拡大画像の最大高さです。値を大きくすると、より大きく表示できます。

レスポンシブ対応
style.css の media query を使用してレスポンシブ対応しています。画面幅640px以下では画像一覧を1列表示へ切り替え、サムネイル画像やドロワーメニューのサイズも自動調整されます。パソコン・タブレット・スマートフォンで利用できます。



コメント