PDFをアコーディオンに表示する方法【HTML/CSS/JavaScript・サンプルコード付き】

アコーディオン
無料ツール
アコーディオンを自由に作成

見出し・内容・開閉方法・色・サイズ・アイコンなどを設定して、HTML・CSS・JavaScriptを自動生成できます。

アコーディオン作成ツールを使う
新しいタブで開きます

PDFをアコーディオンに表示する方法

PDFをアコーディオンに表示する方法を紹介します。このサンプルでは、HTMLのiframe要素を使ってPDFファイルを埋め込み、見出しをクリックしたときだけ表示できるアコーディオンを作成します。初期状態ではPDFを非表示にしておき、「PDFを表示」をクリックするとアコーディオンが開き、もう一度クリックすると閉じるシンプルな構成です。

マニュアル、料金表、申込書、商品資料、会員向け資料など、必要なときだけPDFを確認してもらいたいページで利用できます。PDFを常に表示しておく必要がないため、ページ内の情報量を整理しながら、利用者が必要な資料だけを開いて確認できます。管理画面や会員サイト、ECサイトの商品説明ページなどにも利用しやすい表示方法です。

HTMLではアコーディオンのタイトル、説明文、ボタンの文字、表示するPDFファイルのURLを変更できます。CSSでは全体の横幅、余白、背景色、枠線、角丸、PDF表示領域の高さなどを調整できます。JavaScriptではクリック時にクラスを切り替えてアコーディオンを開閉します。PDF表示領域は横幅100%で表示されるため、スマートフォン・タブレット・PCでも利用できます。

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

デモ

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-accordion_wrap">

    <!-- タイトル -->
    <div class="pdf-accordion_title">
      PDFをアコーディオンに表示
    </div>

    <!-- 説明文 -->
    <p class="pdf-accordion_text">
      見出しをクリックするとPDFを表示できます。
    </p>

    <!-- アコーディオン -->
    <div class="pdf-accordion_item">

      <!-- 開閉ボタン -->
      <button
        class="pdf-accordion_button"
        type="button">
        PDFを表示
      </button>

      <!-- 開閉する内容 -->
      <div class="pdf-accordion_content">

        <!-- PDF表示領域 -->
        <div class="pdf-accordion_frame">

          <!--
            表示したいPDFを sample/pdf/ に配置してください。
            ファイル名を変更する場合は src も同じ名前へ変更してください。
          -->
          <iframe
            src="pdf/sample.pdf"
            title="PDF sample">
          </iframe>

        </div>

      </div>

    </div>

  </div>

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

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

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

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

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルと、表示するPDFファイルで構成されています。HTMLではアコーディオンとPDFを表示するiframeを配置し、CSSではアコーディオンやPDF表示領域のサイズを整えます。JavaScriptでは「PDFを表示」をクリックしたときにis-openクラスを切り替え、PDFを開閉します。表示するPDFは利用者自身で用意し、sample/pdf/フォルダへ配置します。

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

各ファイルの役割
index.htmlはアコーディオンとPDF表示領域を構成するファイルです。「PDFをアコーディオンに表示」のタイトル、説明文、開閉ボタンの文章を変更できます。表示するPDFは、iframeのsrcに指定したファイルを読み込みます。

style.cssはアコーディオン全体とPDF表示領域のデザインを設定するファイルです。全体の横幅、余白、背景色、枠線、角丸、ボタン、開閉記号、PDF表示領域の高さなどを変更できます。

script.jsはアコーディオンを開閉するファイルです。開閉ボタンをクリックすると、アコーディオンの親要素へis-openクラスを追加または削除します。クラスの状態に応じてPDFの表示と非表示が切り替わります。

pdf/sample.pdfはアコーディオン内に表示するPDFファイルです。このPDFは利用者自身で用意します。別のPDFを使用する場合は、pdfフォルダ内のPDFファイルとindex.htmlのiframeに指定するファイル名を合わせてください。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置し、その中にpdfフォルダを作成します。表示したいPDFファイルをsample/pdf/へ配置してください。サンプルコードではファイル名をsample.pdfとしているため、同じ名前で配置する場合はHTMLを変更する必要はありません。

ファイルを配置したあとsample/index.htmlをブラウザで開きます。「PDFを表示」をクリックするとアコーディオンが開いてPDFが表示され、もう一度クリックすると閉じます。

PDFファイルの配置方法・ファイル名の変更方法
表示したいPDFは、ご自身で用意してsample/pdf/フォルダへ配置します。配布コードでは、次のようにsample.pdfを読み込む設定になっています。

src="pdf/sample.pdf"

そのため、用意したPDFのファイル名をsample.pdfにしてsample/pdf/へ配置すれば、そのまま表示できます。

PDFのファイル名を変更して使用することもできます。たとえばmanual.pdfというPDFを使用する場合は、sample/pdf/manual.pdfとして配置し、index.htmlのiframeを次のように変更します。

src="pdf/manual.pdf"

PDFのファイル名とsrcに指定するファイル名が異なるとPDFを読み込めないため、必ず同じ名前を指定してください。

カスタマイズできる内容
index.htmlではタイトル、説明文、開閉ボタンの文章、表示するPDFファイルを変更できます。別のPDFを表示するときは、sample/pdf/へPDFを配置し、必要に応じてiframeのsrcに指定するファイル名を変更してください。

style.cssではアコーディオン全体の横幅、余白、背景色、枠線、角丸、文字色、PDF周囲の余白、PDF表示領域の高さなどを変更できます。また、閉じている状態では「+」、開いている状態では「-」を表示する設定も変更できます。

数値調整
style.css
max-width:700px;
アコーディオン全体の最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。

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

padding:32px;
アコーディオン全体の内側余白です。値を大きくすると内容と外側の枠線との間隔が広がります。

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

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

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

border-radius:12px;
アコーディオンとPDF表示領域に設定している角丸です。値を大きくすると丸みが強くなり、小さくすると角張った表示になります。

padding:16px 18px;
開閉ボタンの内側余白です。上下の16pxを大きくするとボタンが高くなり、左右の18pxを大きくすると文字と端の間隔が広がります。

padding:18px;
PDF周囲の内側余白です。値を大きくするとPDFとアコーディオンの枠との間隔が広がり、小さくすると狭くなります。

height:520px;
PCやタブレットで表示するPDF領域の高さです。値を大きくするとPDFの表示領域が高くなり、小さくすると低くなります。

@media (max-width:640px)
画面幅640px以下でスマートフォン向けの表示へ切り替える基準です。全体の余白をpadding:24px 18px;、PDF表示領域の高さをheight:420px;へ変更しています。

height:420px;
画面幅640px以下で使用するPDF表示領域の高さです。値を変更すると、スマートフォンで表示されるPDF領域の高さが変わります。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%とmax-width:700pxによって、アコーディオン全体が画面幅に合わせて縮小します。PDFを表示するiframeにもwidth:100%を指定しているため、PDF表示領域も親要素の横幅に合わせて調整されます。さらに画面幅640px以下では全体の内側余白をpadding:24px 18px;、PDF表示領域の高さを420pxへ変更しているため、スマートフォン・タブレット・PCで利用できます。


こちらもおすすめ


コメント