PDFをタブ切り替えに表示する方法
PDFをタブ切り替えに表示する方法を紹介します。このサンプルでは、複数のPDFを1つの表示エリアにまとめ、「青PDF」「赤PDF」「黄色PDF」のタブをクリックすると、選択したPDFだけを表示できるようにします。PDFごとに大きな表示領域を用意する必要がないため、複数の資料を整理して掲載したい場合に使いやすい構成です。
商品資料、会社案内、マニュアル、会員向け資料、管理画面の確認用ファイルなど、複数のPDFを切り替えて見せたい場面に利用できます。JavaScriptでは、クリックしたタブと対応するPDFパネルへis-activeクラスを付け替え、選択したPDFだけを表示します。
HTMLではタブ名、PDFの表示名、各iframeへ設定するPDFファイルを変更できます。CSSでは全体の横幅、余白、タブの色、枠線、角丸、PDF表示領域の高さなどを調整できます。PDFは横幅100%で表示されるため、スマートフォン・タブレット・PCでも利用しやすい構成です。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
タブをクリックすると、青・赤・黄色のPDFへ切り替わります。
青バージョンPDF
赤バージョンPDF
黄色バージョンPDF
「青PDF」「赤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-tab-switch_wrap">
<!-- タイトル -->
<div class="pdf-tab-switch_title">
PDFをタブ切り替えで表示
</div>
<!-- 説明文 -->
<p class="pdf-tab-switch_text">
タブをクリックすると、表示するPDFを切り替えられます。
</p>
<!-- タブ -->
<div class="pdf-tab-switch_tabs">
<button
class="pdf-tab-switch_tab is-active"
type="button"
data-tab="pdf1">
PDF1
</button>
<button
class="pdf-tab-switch_tab"
type="button"
data-tab="pdf2">
PDF2
</button>
<button
class="pdf-tab-switch_tab"
type="button"
data-tab="pdf3">
PDF3
</button>
</div>
<!-- PDF1 -->
<div
class="pdf-tab-switch_panel is-active"
data-panel="pdf1">
<p class="pdf-tab-switch_label">
PDF1
</p>
<div class="pdf-tab-switch_frame">
<!-- 表示したいPDFを pdf フォルダへ配置 -->
<iframe
src="pdf/pdf1.pdf"
title="PDF1">
</iframe>
</div>
</div>
<!-- PDF2 -->
<div
class="pdf-tab-switch_panel"
data-panel="pdf2">
<p class="pdf-tab-switch_label">
PDF2
</p>
<div class="pdf-tab-switch_frame">
<!-- 表示したいPDFを pdf フォルダへ配置 -->
<iframe
src="pdf/pdf2.pdf"
title="PDF2">
</iframe>
</div>
</div>
<!-- PDF3 -->
<div
class="pdf-tab-switch_panel"
data-panel="pdf3">
<p class="pdf-tab-switch_label">
PDF3
</p>
<div class="pdf-tab-switch_frame">
<!-- 表示したいPDFを pdf フォルダへ配置 -->
<iframe
src="pdf/pdf3.pdf"
title="PDF3">
</iframe>
</div>
</div>
</div>
<!-- JavaScriptファイル -->
<script src="script.js"></script>
</body>
</html>
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
Q ダウンロードしたけど、これをネット上で動かすにはどうするの?
Googleアカウントがあれば、InfinityFreeで無料サーバーを作成して、ダウンロードしたサンプルをネット上で動かせます。
InfinityFreeを初めて利用する場合は①から、すでにサーバーを作成している場合は②へ進んでください。
ファイル構成と設置方法
このサンプルはHTML・CSS・JavaScriptの3ファイルと、表示するPDFファイルで構成されています。HTMLでは3つのタブと、それぞれのタブに対応するPDF表示エリアを作成し、iframeを使ってPDFを表示します。CSSではタブやPDF表示エリアのデザインを設定し、JavaScriptではクリックしたタブに対応するPDFへ表示を切り替えます。
sample/
├── index.html
├── style.css
├── script.js
└── pdf/
├── pdf1.pdf
├── pdf2.pdf
└── pdf3.pdf
各ファイルの役割
index.htmlはタブとPDF表示エリアを構成するファイルです。「PDF1」「PDF2」「PDF3」のタブ名やPDFのラベルを変更できます。各iframeのsrcを変更すると、タブごとに表示するPDFファイルを変更できます。
style.cssはタブ切り替え全体のデザインを設定するファイルです。全体の横幅や余白、背景色、枠線、角丸、タブの色、PDF表示エリアの高さなどを変更できます。
script.jsはタブをクリックしたときの切り替え処理を行うファイルです。クリックされたタブのdata-tabを取得し、同じ値をdata-panelに持つPDFパネルだけを表示します。
pdf/pdf1.pdf・pdf/pdf2.pdf・pdf/pdf3.pdfは、各タブで実際に表示するPDFファイルです。別のPDFを利用する場合は、PDFファイルをこのフォルダへ配置し、index.htmlのiframeに指定しているsrcを配置したファイル名に合わせて変更します。
設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置し、その中にpdfフォルダを作成してpdf1.pdf、pdf2.pdf、pdf3.pdfを配置します。ファイルを配置したあと、sample/index.htmlをブラウザで開いてください。最初は「PDF1」が選択された状態でpdf1.pdfが表示されます。「PDF2」「PDF3」をクリックすると、それぞれ対応するPDFへ表示が切り替わります。
カスタマイズできる内容
index.htmlではタブに表示する「PDF1」「PDF2」「PDF3」の文章、PDF上部のラベル、iframeのsrcとtitleを変更できます。別のPDFを表示したい場合は、pdfフォルダへPDFファイルを配置してsrc="pdf/pdf1.pdf"などの指定を変更します。
style.cssでは全体の最大横幅、余白、背景色、枠線、角丸、タブの背景色や文字色、PDF表示領域の高さなどを変更できます。選択中のタブは.pdf-tab-switch_tab.is-activeで設定しているため、通常のタブとは別に色を調整できます。
数値調整
style.css
max-width:700px;
タブ切り替え全体の最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。
margin:40px auto;
全体の上下余白です。40pxを大きくすると上下の間隔が広がり、小さくすると狭くなります。
padding:32px;
全体の内側余白です。値を大きくすると内容と外側の枠線との間隔が広がります。
border-radius:18px;
全体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。
font-size:22px;
タイトルの文字サイズです。値を大きくするとタイトルが大きく表示されます。
padding:14px;
各タブの内側余白です。値を大きくするとタブが高くなり、小さくするとコンパクトになります。
border-radius:12px 12px 0 0;
タブ上部の角丸です。12pxを大きくすると上側の丸みが強くなります。
margin-left:6px;
2つ目以降のタブとの間隔です。値を大きくするとタブ同士の間隔が広がります。
padding:18px;
PDFパネル内側の余白です。値を大きくするとPDFとパネルの枠線との間隔が広がります。
font-size:18px;
PDF上部に表示するラベルの文字サイズです。値を大きくすると文字が大きくなります。
height:520px;
PDF表示領域の高さです。値を大きくするとPDFを表示する領域が高くなり、小さくすると低くなります。
@media (max-width:640px)
画面幅が640px以下になった場合にスマートフォン向けの設定へ切り替える基準です。
height:420px;
画面幅640px以下で使用するPDF表示領域の高さです。値を変更するとスマートフォン表示時のPDF領域の高さが変わります。
レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%とmax-width:700pxによって、画面幅に合わせてタブ切り替え全体が縮小されます。PDFを表示するiframeにもwidth:100%を指定しているため、親要素の横幅に合わせて表示されます。さらに画面幅640px以下では全体の余白をpadding:24px 18px;、タブの余白をpadding:12px 8px;、PDF表示領域をheight:420px;へ変更しているため、スマートフォン・タブレット・PCで利用できます。
コメント