iframeをモーダルウインドウで表示する方法【HTML/CSS/JavaScript・サンプルコード付き】

モーダルウインドウ

iframeをモーダルウインドウで表示する方法

iframeをモーダルウインドウで表示する方法を紹介します。ボタンをクリックするとモーダルウインドウが開き、その中へiframeで指定したWebページを表示できるサンプルです。HTML・CSS・JavaScriptだけで実装しているため、外部ライブラリを使用せずに導入できます。

iframeのsrc属性へ表示したいURLを設定することで、別ページのコンテンツや案内ページなどを現在のページ上へ表示できます。ページを移動せずに内容を確認できるため、サービス説明、利用規約、ヘルプページ、管理画面の補足情報などを表示したい場面で利用できます。

配布用コードではiframeのURL、モーダルの横幅、背景色、余白、角丸、枠線などを変更できます。モーダルは画面幅に合わせて縮小され、iframeには16対9の表示比率を設定しているため、スマートフォン・タブレット・PCでも利用しやすいレスポンシブ対応のサンプルです。

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

デモ

iframeをモーダルで表示

ボタンをクリックすると、モーダルウインドウ内にiframeを表示できます。

「iframeを表示」をクリックするとモーダルウインドウ内にWebページが表示され、「×」ボタンまたは背景部分をクリックすると閉じます。

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

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

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

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

  <!-- ページタイトル -->
  <title>iframeをモーダルウインドウで表示する方法</title>

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

</head>
<body>

  <!-- iframeモーダルを開く操作エリア -->
  <div class="iframe-modal-window_wrap">

    <!-- 操作エリアのタイトル -->
    <div class="iframe-modal-window_title">
      iframeをモーダルで表示
    </div>

    <!-- 操作エリアの説明文 -->
    <p class="iframe-modal-window_text">
      ボタンをクリックすると、モーダルウインドウ内にiframeを表示できます。
    </p>

    <!-- モーダルを開くボタン -->
    <button
      class="iframe-modal-window_open"
      type="button"
      data-iframe-modal-window-open>
      iframeを表示
    </button>

  </div>

  <!-- モーダル背景 -->
  <div
    class="iframe-modal-window_overlay"
    data-iframe-modal-window-overlay>

    <!-- モーダル本体 -->
    <div
      class="iframe-modal-window_modal"
      role="dialog"
      aria-modal="true"
      aria-label="iframe表示モーダル">

      <!-- モーダルを閉じるボタン -->
      <button
        class="iframe-modal-window_close"
        type="button"
        data-iframe-modal-window-close
        aria-label="閉じる">
        ×
      </button>

      <!-- iframe表示エリア -->
      <div class="iframe-modal-window_frame">

        <!--
          iframeで表示するWebページ

          src属性へ表示したいページのURLを指定する。
          下記URLを書き換えると、モーダル内へ表示するページを変更できる。

          例
          src="https://example.com/"

          外部サイトによっては、セキュリティ設定により
          iframe内で表示できない場合がある。
        -->
        <iframe
          src="https://maruhinoto.com/example/"
          title="iframeサンプル">
        </iframe>

      </div>

    </div>

  </div>

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

</body>
</html>
コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されており、ボタンをクリックするとモーダルウインドウ内へiframeを表示できます。HTMLで画面やモーダルの構造を作成し、CSSでデザインとレスポンシブ表示を整え、JavaScriptでモーダルの開閉を制御します。

iframeには表示したいWebページを指定できるため、自社サイトのお問い合わせページや利用規約、サービス紹介ページなどをモーダル内へ表示したい場合に利用できます。通常のページ遷移を行わずに別ページを表示できるため、ユーザー体験を損なわず情報を表示できます。

iframeで表示するページは配布していません。表示したいページは各自で用意し、iframeのsrc属性へURLを指定してください。HTML・CSS・JavaScriptを分離しているため、デザインや動作もそれぞれ編集しやすい構成になっています。

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

各ファイルの役割
index.html
モーダルウインドウ、iframe、開くボタンなど画面全体の構造を定義します。iframeのsrc属性を変更すると表示するWebページを変更できます。

style.css
モーダルウインドウのサイズ、背景色、余白、角丸、影、ボタンデザイン、アニメーション、レスポンシブ表示を管理します。

script.js
「iframeを表示」ボタンのクリック、モーダルを閉じるボタン、背景クリックによるモーダルの開閉処理を管理します。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置してください。表示したいページは各自で用意し、index.html内のiframeのsrc属性へ表示したいURLを指定します。

配置後はsample/index.htmlをブラウザで開くと動作を確認できます。「iframeを表示」ボタンをクリックするとモーダルウインドウ内へ指定したWebページが表示され、「×」ボタンまたは背景部分をクリックすると閉じます。

カスタマイズできる内容
index.htmlではボタン名、説明文、iframeのURLを変更できます。
style.cssではモーダルの幅、高さ、背景色、ボタン色、余白、角丸、影、アニメーションなどを変更できます。
script.jsでは開閉方法やイベント処理など、実装されている動作を編集できます。

数値調整
style.cssの「transition」「animation」の時間を変更すると、モーダル表示時のアニメーション速度を調整できます。値を大きくするとゆっくり表示され、小さくすると素早く表示されます。

style.cssのmax-widthやpaddingを変更すると、モーダルの大きさや余白を調整できます。

レスポンシブ対応
style.cssではwidth:100%、max-width、aspect-ratio、media queryを使用し、スマートフォン・タブレット・PCでもモーダルやiframeが画面幅に合わせて表示されるよう対応しています。


こちらもおすすめ


コメント