PDFをドロップダウンメニューに表示する方法
PDFをドロップダウンメニューに表示する方法を紹介します。このサンプルでは、メニューボタンをクリックするとPDFの一覧が表示され、各項目をクリックすると対応するPDFをiframe内へ表示します。複数のPDFを1つのメニューにまとめられるため、ページ内へPDFを常時並べて表示せず、必要な資料だけを選んで確認できる構成にできます。
マニュアル、商品カタログ、料金表、利用案内など、複数のPDFをWebページから閲覧できるようにしたい場合に利用できます。最初はPDFを閉じた状態で表示し、「PDFメニュー」をクリックすると3つの項目が開きます。「PDF1」「PDF2」「PDF3」の各ボタンをクリックすると、その項目の下へ対応するPDFが表示され、もう一度クリックすると閉じます。
表示するPDFはHTML内のiframeに設定するURLを変更できるため、自分のWebサイトへアップロードしたPDFなどへ差し替えて利用できます。CSSではメニューの横幅、ボタンの色やサイズ、余白、角丸、PDF表示エリアの高さなどを調整できます。画面幅640px以下では余白やPDF表示エリアの高さを変更するレスポンシブ対応も行っているため、スマートフォン・タブレット・PCで利用できます。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
「PDFメニュー」をクリックし、表示したいPDFを選択してください。各項目をクリックすると、その下にPDFが表示されます。
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コード -->
<meta charset="UTF-8">
<!-- スマートフォン対応 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>PDFをドロップダウンメニューに表示</title>
<!-- CSSファイル -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- ドロップダウンメニュー全体 -->
<div class="pdf-dropdown-menu_wrap">
<!-- メインメニューボタン -->
<button
class="pdf-dropdown-menu_main-button"
type="button"
data-pdf-dropdown-main-button
aria-expanded="false">
<!-- メニュー名 -->
<span>PDFメニュー</span>
<!-- メインメニューの開閉記号 -->
<span class="pdf-dropdown-menu_main-arrow">▼</span>
</button>
<!-- PDFメニュー一覧。初期状態では非表示 -->
<div
class="pdf-dropdown-menu_list"
data-pdf-dropdown-list
hidden>
<!-- 1つ目のPDF項目 -->
<div class="pdf-dropdown-menu_item">
<!-- 1つ目のPDFを開閉するボタン -->
<button
class="pdf-dropdown-menu_item-button"
type="button"
data-pdf-dropdown-item-button
aria-expanded="false">
<!-- PDFの表示名 -->
<span>PDF1</span>
<!-- PDF項目の開閉記号 -->
<span class="pdf-dropdown-menu_item-arrow">▼</span>
</button>
<!-- 1つ目のPDF表示エリア。初期状態では非表示 -->
<div
class="pdf-dropdown-menu_panel"
data-pdf-dropdown-panel
hidden>
<!-- PDF表示領域 -->
<div class="pdf-dropdown-menu_frame">
<!--
【1つ目のPDFファイルを用意してください】
1. 表示したいPDFファイルを利用者自身で用意してください。
2. sampleフォルダ内へ pdf フォルダを作成してください。
3. PDFファイルを sample/pdf/ へ配置してください。
4. このサンプルでは1つ目のPDFファイル名を sample-1.pdf としています。
5. 別のファイル名を使用する場合は、下の src も同じファイル名へ変更してください。
配置例:
sample/pdf/sample-1.pdf
HTML:
src="pdf/sample-1.pdf"
-->
<iframe
src="pdf/sample-1.pdf"
title="PDF1">
</iframe>
</div>
</div>
</div>
<!-- 2つ目のPDF項目 -->
<div class="pdf-dropdown-menu_item">
<!-- 2つ目のPDFを開閉するボタン -->
<button
class="pdf-dropdown-menu_item-button"
type="button"
data-pdf-dropdown-item-button
aria-expanded="false">
<!-- PDFの表示名 -->
<span>PDF2</span>
<!-- PDF項目の開閉記号 -->
<span class="pdf-dropdown-menu_item-arrow">▼</span>
</button>
<!-- 2つ目のPDF表示エリア。初期状態では非表示 -->
<div
class="pdf-dropdown-menu_panel"
data-pdf-dropdown-panel
hidden>
<!-- PDF表示領域 -->
<div class="pdf-dropdown-menu_frame">
<!--
【2つ目のPDFファイルを用意してください】
1. 2つ目に表示したいPDFファイルを用意してください。
2. PDFファイルを sample/pdf/ へ配置してください。
3. このサンプルではファイル名を sample-2.pdf としています。
4. 別のファイル名を使用する場合は、下の src も同じファイル名へ変更してください。
配置例:
sample/pdf/sample-2.pdf
-->
<iframe
src="pdf/sample-2.pdf"
title="PDF2">
</iframe>
</div>
</div>
</div>
<!-- 3つ目のPDF項目 -->
<div class="pdf-dropdown-menu_item">
<!-- 3つ目のPDFを開閉するボタン -->
<button
class="pdf-dropdown-menu_item-button"
type="button"
data-pdf-dropdown-item-button
aria-expanded="false">
<!-- PDFの表示名 -->
<span>PDF3</span>
<!-- PDF項目の開閉記号 -->
<span class="pdf-dropdown-menu_item-arrow">▼</span>
</button>
<!-- 3つ目のPDF表示エリア。初期状態では非表示 -->
<div
class="pdf-dropdown-menu_panel"
data-pdf-dropdown-panel
hidden>
<!-- PDF表示領域 -->
<div class="pdf-dropdown-menu_frame">
<!--
【3つ目のPDFファイルを用意してください】
1. 3つ目に表示したいPDFファイルを用意してください。
2. PDFファイルを sample/pdf/ へ配置してください。
3. このサンプルではファイル名を sample-3.pdf としています。
4. 別のファイル名を使用する場合は、下の src も同じファイル名へ変更してください。
配置例:
sample/pdf/sample-3.pdf
-->
<iframe
src="pdf/sample-3.pdf"
title="PDF3">
</iframe>
</div>
</div>
</div>
</div>
</div>
<!-- JavaScriptファイル -->
<script src="script.js"></script>
</body>
</html>
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
ファイル構成と設置方法
このサンプルは、HTML・CSS・JavaScriptの3ファイルで構成されています。HTMLではPDFメニュー、各PDF項目、PDFを表示するiframeを配置し、CSSではドロップダウンメニューやPDF表示領域の横幅、余白、色、角丸、高さなどを設定します。JavaScriptでは「PDFメニュー」と各PDF項目のクリックを検知し、メニュー一覧やPDF表示エリアの開閉、矢印の切り替えを行います。
表示するPDFファイルはZIPには含まれていません。利用者自身でPDFファイルを用意し、sampleフォルダ内へpdfフォルダを作成して、その中へ配置します。このサンプルでは3つのPDFを表示するため、sample-1.pdf、sample-2.pdf、sample-3.pdfというファイル名を使用しています。
PDFファイルを配置したあとにsample/index.htmlをブラウザで開くと、「PDFメニュー」ボタンが表示されます。ボタンをクリックするとPDF1・PDF2・PDF3の項目が表示され、それぞれをクリックすると対応するPDFがiframe内へ表示されます。もう一度同じ項目をクリックするとPDF表示エリアが閉じます。
sample/
├── index.html
├── style.css
├── script.js
└── pdf/
├── sample-1.pdf
├── sample-2.pdf
└── sample-3.pdf
各ファイルの役割
index.htmlはPDFドロップダウンメニュー全体を構成するファイルです。「PDFメニュー」「PDF1」「PDF2」「PDF3」の表示名を変更できます。また、各iframeのsrcに指定するPDFファイル名を変更する場合もindex.htmlを編集します。
style.cssはドロップダウンメニューとPDF表示領域のデザインを設定するファイルです。全体の最大横幅、メインボタンの高さや色、メニュー一覧の余白や影、各PDF項目の文字サイズ、PDF表示領域の高さや角丸などを変更できます。
script.jsはドロップダウンメニューを開閉するファイルです。「PDFメニュー」をクリックするとPDF一覧の表示・非表示を切り替え、PDF1・PDF2・PDF3をクリックすると、それぞれ対応するPDF表示エリアを開閉します。開閉状態に合わせてaria-expandedと「▼」「▲」の矢印も切り替えます。
pdf/sample-1.pdf、pdf/sample-2.pdf、pdf/sample-3.pdfは、ドロップダウンメニューから表示するPDFファイルです。これらのPDFは利用者自身で用意します。別のファイル名を使用する場合は、index.htmlの各iframeに指定しているsrcも同じファイル名へ変更してください。
設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置し、その中へpdfフォルダを作成します。次に、表示したい3つのPDFファイルをsample/pdf/へ配置してください。
配布コードでは、1つ目のPDFをpdf/sample-1.pdf、2つ目をpdf/sample-2.pdf、3つ目をpdf/sample-3.pdfとして読み込む設定になっています。そのため、用意したPDFをこの3つのファイル名で保存する場合は、index.htmlを変更する必要はありません。
PDFのファイル名を変更して使用する場合は、index.htmlの各iframeにあるsrcも変更します。たとえば1つ目のPDFをmanual.pdfという名前で配置する場合は、sample/pdf/manual.pdfとして保存し、1つ目のiframeをsrc="pdf/manual.pdf"へ変更してください。PDFの実際のファイル名とsrcに指定する名前は必ず一致させます。
ファイルを配置したらsample/index.htmlをブラウザで開きます。「PDFメニュー」をクリックするとPDF一覧が開き、PDF1・PDF2・PDF3をクリックすると対応するPDFが表示されます。もう一度同じ項目をクリックするとPDF表示エリアが閉じます。
カスタマイズできる内容
index.htmlでは「PDFメニュー」「PDF1」「PDF2」「PDF3」の表示名を変更できます。表示するPDFを変更する場合は、sample/pdf/へ別のPDFファイルを配置し、必要に応じて各iframeのsrcに指定するファイル名を変更してください。各iframeのtitle属性も、表示するPDFの内容に合わせて変更できます。
style.cssでは、メインメニューボタンの背景色#2563eb、文字色#ffffff、メニュー一覧の背景色、枠線、角丸、影などを変更できます。また、PDF表示領域の高さ、枠線、角丸、周囲の余白も調整できます。
script.jsでは、メインメニューと各PDF表示エリアの開閉処理を行っています。クリック時にaria-expandedを切り替え、閉じている状態では「▼」、開いている状態では「▲」を表示します。
数値調整
style.css
padding:40px 20px;
ページ全体の余白です。40pxは上下、20pxは左右の余白を表します。値を大きくすると画面端との間隔が広がります。
max-width:700px;
ドロップダウンメニュー全体の最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。
margin:40px auto;
ドロップダウンメニュー全体の上下余白です。40pxを大きくすると上下の間隔が広がります。autoによって左右中央へ配置されます。
min-height:64px;
メインメニューボタンの最小高さです。値を大きくするとボタンが高くなります。
padding:16px 24px;
メインメニューボタンの内側余白です。16pxは上下、24pxは左右の余白を表します。
border-radius:12px;
メインメニューボタンとPDFメニュー一覧の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。
font-size:20px;
メインメニューボタンの文字サイズです。値を大きくすると文字が大きくなります。
margin-left:16px;
メニュー名やPDF名と矢印の間隔です。値を大きくすると間隔が広がります。
margin-top:12px;
メインメニューボタンとPDFメニュー一覧の間隔です。値を大きくすると上下の間隔が広がります。
padding:16px;
PDFメニュー一覧の内側余白です。値を大きくすると各項目と外枠の間隔が広がります。
box-shadow:0 10px 24px rgba(15,23,42,.10);
PDFメニュー一覧へ付ける影です。10pxは縦方向の位置、24pxはぼかしの広がりに関係します。値を変更すると影の見え方が変わります。
min-height:58px;
各PDF項目ボタンの最小高さです。値を大きくすると項目が高くなります。
padding:14px 16px;
各PDF項目ボタンの内側余白です。14pxは上下、16pxは左右の余白を表します。
font-size:17px;
PDF1・PDF2・PDF3の文字サイズです。値を大きくすると項目名が大きくなります。
padding:0 16px 18px;
PDF表示エリアの余白です。左右16px、下側18pxの余白を設定しています。値を大きくするとPDFとメニュー外枠との間隔が広がります。
height:500px;
通常時のPDF表示領域の高さです。値を大きくするとPDFを表示する領域が高くなり、小さくすると低くなります。
border-radius:8px;
PDFを表示するiframeの角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。
@media (max-width:640px)
画面幅640px以下でスマートフォン向けの表示へ切り替えるブレークポイントです。
height:400px;
画面幅640px以下で使用するPDF表示領域の高さです。値を変更するとスマートフォン表示時のPDF領域の高さが変わります。
レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%とmax-width:700pxによって、ドロップダウンメニュー全体が画面幅に合わせて縮小されます。PDF表示領域内のiframeにもwidth:100%を指定しているため、親要素の横幅に合わせてPDF表示領域も縮小します。
画面幅640px以下では@media (max-width:640px)が適用され、ページ全体の余白を24px 12px、メニュー全体の上下余白を24px、メインボタンの最小高さを58px、文字サイズを18pxへ変更します。また、PDFメニュー一覧やPDF周囲の余白を小さくし、PDF表示領域の高さを500pxから400pxへ変更しています。これにより、スマートフォン・タブレット・PCで利用できます。
コメント