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

ドロワーメニュー
無料ツール
ドロワーメニューを自由に作成

表示位置・メニュー項目・サイズ・色・余白・閉じ方などを設定して、HTML・CSS・JavaScriptを自動生成できます。

ドロワーメニュー作成ツールを使う
新しいタブで開きます

iframeをドロワーメニューに表示する方法

iframeをドロワーメニューに表示する方法を紹介します。このサンプルでは、ボタンをクリックすると画面左側からドロワーメニューが表示され、その中にiframeを使って指定したWebページを表示します。通常のページ内へiframeを直接配置するのではなく、必要なときだけドロワーメニューを開いて内容を確認できる構成です。

サイト内の別ページや案内ページなどを、現在のページから移動せずに確認させたい場面で利用できます。「iframeを表示」ボタンをクリックするとドロワーメニューが開き、「閉じる」ボタンまたはドロワーメニュー外側の背景をクリックすると閉じられます。JavaScriptではドロワーメニューの表示・非表示を切り替え、CSSでは左側から表示するアニメーションや背景を暗くする表示を設定しています。

iframeへ表示するページはHTMLのsrc属性から変更でき、タイトルや説明文、ボタンの文章も用途に合わせて編集できます。CSSではドロワーメニューの横幅、余白、背景色、ボタンの色、iframe表示エリアの高さ、角丸、影、アニメーション時間などを調整できます。また、ドロワーメニューには最大横幅を設定し、640px以下では余白を調整しているため、スマートフォン・タブレット・PCで利用できるiframe付きドロワーメニューとして活用できます。

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

デモ

iframeをドロワーメニューで表示

ボタンをクリックすると、ドロワーメニュー内にiframeを表示できます。

「iframeを表示」をクリックすると、画面左側のドロワーメニュー内にiframeが表示されます。「閉じる」ボタンまたは背景部分をクリックすると閉じられます。

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

<!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>

  <!-- デモ全体 -->
  <div class="iframe-drawer-menu_wrap">

    <!-- タイトル -->
    <h1 class="iframe-drawer-menu_title">
      iframeをドロワーメニューで表示
    </h1>

    <!-- 説明文 -->
    <p class="iframe-drawer-menu_text">
      ボタンをクリックすると、ドロワーメニュー内にiframeを表示できます。
    </p>

    <!-- ドロワーメニューを開くボタン -->
    <button
      class="iframe-drawer-menu_open"
      type="button"
      data-drawer-open>
      iframeを表示
    </button>

  </div>

  <!-- ドロワーメニュー表示時の背景 -->
  <div
    class="iframe-drawer-menu_overlay"
    data-drawer-overlay>

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

      <!-- ドロワーメニューのタイトル -->
      <div
        class="iframe-drawer-menu_drawer-title"
        id="iframe-drawer-menu-title">
        iframe表示エリア
      </div>

      <!-- ドロワーメニューの説明文 -->
      <p class="iframe-drawer-menu_drawer-text">
        ドロワーメニュー内でiframeを確認できます。
      </p>

      <!-- iframe表示エリア -->
      <div class="iframe-drawer-menu_frame">

        <!--
          iframe
          src属性へ表示したいページのURLを指定する。

          表示先のWebサイトによっては、
          iframe内への表示が禁止されている場合がある。
        -->
        <iframe
          src=""
          title="iframe sample"
          loading="lazy">
        </iframe>

      </div>

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

    </div>

  </div>

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

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

Googleアカウントがあれば、InfinityFreeで無料サーバーを作成して、ダウンロードしたサンプルをネット上で動かせます。

InfinityFreeを初めて利用する場合は①から、すでにサーバーを作成している場合は②へ進んでください。

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLでは「iframeを表示」ボタン、ドロワーメニュー、iframe表示エリアを作成し、CSSではドロワーメニューの横幅や余白、背景、iframeの表示サイズ、左側から表示するアニメーションなどを設定します。JavaScriptではボタンのクリックに合わせてドロワーメニューの表示・非表示を切り替えます。

iframe内へ表示するWebページは利用者自身で用意し、index.htmlのiframeにあるsrc属性へ表示したいページのURLを設定します。配布コードではsrc=""の状態になっているため、使用前にURLの設定が必要です。なお、表示先のWebサイト側でiframeへの埋め込みが禁止されている場合は、この方法では表示できません。

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

各ファイルの役割
index.htmlはページとドロワーメニューのHTML構造を作るファイルです。「iframeをドロワーメニューで表示」のタイトル、説明文、「iframeを表示」ボタン、ドロワーメニュー内のタイトルと説明文、iframe、「閉じる」ボタンが含まれています。iframe内へ表示するページのURLも、このファイルのsrc属性で設定します。

style.cssはページとドロワーメニューのデザインを設定するファイルです。全体の横幅や余白、ボタンの色、背景の暗さ、ドロワーメニューの横幅、iframe表示エリアの高さ、枠線、角丸、影、左側から表示するアニメーションなどを変更できます。

script.jsはドロワーメニューの開閉を制御するファイルです。「iframeを表示」ボタンをクリックするとis-activeクラスを追加してドロワーメニューを表示します。「閉じる」ボタン、またはドロワーメニュー外側の背景をクリックするとis-activeクラスを削除して閉じます。

設置方法・使い方
sampleフォルダへindex.html・style.css・script.jsを同じ階層で配置します。index.htmlからstyle.cssとscript.jsを読み込む構成になっているため、3ファイルの名前や配置を変更せずに保存してください。

次に、index.htmlのiframeにあるsrc=""へ、ドロワーメニュー内で表示したいWebページのURLを設定します。例えば表示したいページのURLがhttps://example.com/の場合は、src="https://example.com/"のように設定します。URLはiframe内へ表示したいページをブラウザで開き、アドレスバーに表示されているURLを確認して設定してください。

URLを設定したあと、sample/index.htmlをブラウザで開きます。「iframeを表示」ボタンをクリックすると画面左側からドロワーメニューが表示され、設定したページをiframe内で確認できます。「閉じる」ボタンまたはドロワーメニュー外側の暗くなった背景をクリックすると閉じます。URLを正しく設定しても表示されない場合は、表示先のWebサイトがiframeへの埋め込みを許可していない可能性があります。

カスタマイズできる内容
index.htmlではページタイトル、「iframeをドロワーメニューで表示」のタイトル、説明文、「iframeを表示」ボタンの文章、ドロワーメニュー内のタイトルと説明文、「閉じる」ボタンの文章を変更できます。iframeのsrc属性を変更すると、ドロワーメニュー内へ表示するWebページを変更できます。

style.cssでは全体の横幅や余白、背景色、ボタンの色、ドロワーメニューの横幅、背景の暗さ、iframe表示エリアの高さ、枠線、角丸、影、アニメーション時間などを変更できます。

数値調整
style.css
padding:40px 20px;
ページ全体の内側余白です。40pxが上下、20pxが左右の余白を表します。値を大きくすると画面端との間隔が広がります。

max-width:700px;
デモ全体の最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。

margin:40px auto;
デモ全体の上下余白です。40pxを大きくすると上下の間隔が広がり、小さくすると狭くなります。

padding:32px;
デモ全体の内側余白です。値を大きくすると内容と枠線の間隔が広がり、小さくすると狭くなります。

border-radius:18px;
デモ全体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

font-size:22px;
タイトルの文字サイズです。値を大きくすると文字が大きくなり、小さくすると小さくなります。

margin:0 0 24px;
説明文の下側余白です。24pxを大きくするとボタンとの間隔が広がり、小さくすると狭くなります。

padding:12px 24px;
「iframeを表示」ボタンの内側余白です。12pxが上下、24pxが左右の余白を表します。値を大きくするとボタンが大きくなります。

border-radius:8px;
ボタンの角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

font-size:16px;
「iframeを表示」ボタンの文字サイズです。値を大きくすると文字が大きくなります。

z-index:9999;
ドロワーメニュー表示時の背景を重ねる順番です。値が大きいほど前面へ配置されます。

background:rgba(0,0,0,.5);
ドロワーメニュー表示中の背景の暗さです。.5を大きくすると背景が濃くなり、小さくすると薄くなります。

width:420px;
ドロワーメニュー本体の横幅です。値を大きくすると横に広がり、小さくすると狭くなります。

max-width:90%;
ドロワーメニュー本体の最大横幅です。画面が狭い場合に画面幅を超えないように調整します。

padding:28px;
ドロワーメニュー本体の内側余白です。値を大きくすると内容と端の間隔が広がり、小さくすると狭くなります。

box-shadow:10px 0 40px rgba(0,0,0,.2);
ドロワーメニュー右側の影です。10pxは横方向の位置、40pxはぼかしの大きさを表します。値を変更すると影の位置や広がりが変わります。

height:420px;
iframe表示エリアの高さです。値を大きくすると表示領域が高くなり、小さくすると低くなります。

margin-bottom:24px;
iframe表示エリアと「閉じる」ボタンの間隔です。値を大きくすると間隔が広がり、小さくすると狭くなります。

border-radius:12px;
iframeの角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

animation:iframe-drawer-menu_slide .35s ease forwards;
ドロワーメニューが左側から表示されるアニメーション時間です。.35sは0.35秒を表します。値を大きくするとゆっくり、小さくすると速く表示されます。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssではドロワーメニュー本体にwidth:420px;とmax-width:90%;を設定しているため、画面が狭い場合は画面幅に合わせて横幅が調整されます。iframeもwidth:100%とheight:100%によって、iframe表示エリアのサイズに合わせて表示されます。

また、画面幅640px以下ではデモ全体をpadding:24px 18px;、ドロワーメニュー本体をpadding:24px 20px;へ変更し、iframe表示エリアの高さを360pxへ調整します。これにより、スマートフォン・タブレット・PCで利用できます。


こちらもおすすめ


コメント