YouTube動画をタブ切り替えに表示する方法【HTML/CSS/JavaScript・サンプルコード付き】

タブ切り替え
無料ツール
タブ切り替えを自由に作成

タブ項目・サイズ・色・余白・初期表示などを設定して、HTML・CSS・JavaScriptを自動生成できます。

タブ切り替え作成ツールを使う
新しいタブで開きます

YouTube動画をタブ切り替えに表示する方法

YouTube動画をタブ切り替えに表示する方法を紹介します。このサンプルでは、複数のYouTube動画を1つの表示エリアにまとめ、タブをクリックすると選択した動画だけが表示される仕組みをHTML・CSS・JavaScriptで作成します。動画ごとに大きな表示領域を用意する必要がなく、限られたスペースで複数の動画を見せたい場合に利用できます。

商品紹介ページで複数の解説動画を掲載する場合や、会員サイトの学習コンテンツ、サービス紹介ページ、操作方法をまとめたページなど、内容ごとに動画を切り替えて見せたい場面に適しています。「動画1」「動画2」「動画3」のタブをクリックすると、JavaScriptによって選択したタブと対応するYouTube動画へ表示が切り替わります。

HTMLではタブの文章や表示するYouTube動画を変更でき、CSSでは全体の横幅、余白、タブの色、枠線、角丸、動画の表示比率などを調整できます。動画部分は16:9の比率で画面幅に合わせて表示され、640px以下では全体の内側余白も小さくなるため、スマートフォン・タブレット・PCで利用できます。

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

デモ

YouTube動画をタブ切り替えで表示

タブをクリックすると、対応するYouTube動画だけを表示できます。

「動画1」「動画2」「動画3」のタブをクリックすると、表示するYouTube動画を切り替えられます。

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

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

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

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

  <!-- ページタイトル -->
  <title>YouTube動画をタブ切り替えに表示</title>

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

</head>
<body>

  <!-- タブ切り替え全体 -->
  <div class="youtube-tab-switch_wrap">

    <!-- タイトル -->
    <div class="youtube-tab-switch_title">
      YouTube動画をタブ切り替えで表示
    </div>

    <!-- 説明文 -->
    <p class="youtube-tab-switch_text">
      タブをクリックすると、対応するYouTube動画だけを表示できます。
    </p>

    <!-- タブ -->
    <div class="youtube-tab-switch_tabs">

      <button
        class="youtube-tab-switch_tab is-active"
        type="button"
        data-tab="video1">
        動画1
      </button>

      <button
        class="youtube-tab-switch_tab"
        type="button"
        data-tab="video2">
        動画2
      </button>

      <button
        class="youtube-tab-switch_tab"
        type="button"
        data-tab="video3">
        動画3
      </button>

    </div>

    <!-- 動画1 -->
    <div
      class="youtube-tab-switch_panel is-active"
      data-panel="video1">

      <div class="youtube-tab-switch_video">

        <!-- 動画IDを表示したいYouTube動画のIDへ変更してください -->
        <iframe
          src="https://www.youtube.com/embed/動画ID1"
          title="YouTube video 1"
          allowfullscreen>
        </iframe>

      </div>

    </div>

    <!-- 動画2 -->
    <div
      class="youtube-tab-switch_panel"
      data-panel="video2">

      <div class="youtube-tab-switch_video">

        <!-- 動画IDを表示したいYouTube動画のIDへ変更してください -->
        <iframe
          src="https://www.youtube.com/embed/動画ID2"
          title="YouTube video 2"
          allowfullscreen>
        </iframe>

      </div>

    </div>

    <!-- 動画3 -->
    <div
      class="youtube-tab-switch_panel"
      data-panel="video3">

      <div class="youtube-tab-switch_video">

        <!-- 動画IDを表示したいYouTube動画のIDへ変更してください -->
        <iframe
          src="https://www.youtube.com/embed/動画ID3"
          title="YouTube video 3"
          allowfullscreen>
        </iframe>

      </div>

    </div>

  </div>

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

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

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

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

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLでは3つのタブと、それぞれに対応するYouTube動画をiframeで配置します。CSSではタブ切り替え全体の横幅、余白、タブの色、枠線、角丸、YouTube動画の表示比率などを設定します。JavaScriptではクリックしたタブに対応する動画パネルへis-activeクラスを付け替え、表示するYouTube動画を切り替えます。

このサンプルではYouTube動画は自動再生されません。タブをクリックすると対応する動画プレーヤーへ表示が切り替わり、動画内の再生ボタンをクリックすると再生されます。自動再生したい場合は、YouTubeの埋め込みURLの末尾へ?autoplay=1を追加します。ただし、ブラウザの自動再生制限によって、音声付きの自動再生が許可されない場合があります。

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

各ファイルの役割
index.htmlはタブ切り替えとYouTube動画を構成するファイルです。「動画1」「動画2」「動画3」のタブ名、タイトル、説明文、各iframeへ設定するYouTube動画を変更できます。タブのdata-tabと動画パネルのdata-panelを同じ値にすることで、それぞれのタブと動画を対応させています。

style.cssはタブ切り替え全体とYouTube動画の表示デザインを設定するファイルです。全体の最大横幅、余白、背景色、枠線、角丸、タブの色、タブ同士の間隔、動画周囲の余白などを変更できます。YouTube動画部分にはaspect-ratio:16/9;を指定し、16:9の比率で表示します。

script.jsはタブをクリックしたときの切り替え処理を行うファイルです。クリックしたタブのdata-tabを取得し、すべてのタブと動画パネルからis-activeクラスを削除したあと、選択したタブと対応する動画パネルへis-activeクラスを追加します。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを同じ階層で配置します。そのあとsample/index.htmlをブラウザで開いてください。初期状態では「動画1」が選択され、対応するYouTube動画が表示されます。「動画2」または「動画3」をクリックすると、選択したタブに対応する動画だけへ表示が切り替わります。

YouTube動画の設定方法
表示するYouTube動画は、index.htmlにある各iframeのsrcへ設定します。配布コードでは次の形式になっています。

https://www.youtube.com/embed/動画ID1
https://www.youtube.com/embed/動画ID2
https://www.youtube.com/embed/動画ID3

まず、表示したいYouTube動画を開いてURLを確認します。たとえば次のURLの場合です。

https://www.youtube.com/watch?v=kAiX0itnonM

v=より後ろにあるkAiX0itnonMが動画IDです。この動画を「動画1」へ表示する場合は、次のように設定します。

src="https://www.youtube.com/embed/kAiX0itnonM"

「動画2」「動画3」も同じ方法で、それぞれ表示したいYouTube動画のIDへ変更してください。

動画を自動再生する場合
YouTube動画を自動再生したい場合は、各iframeの埋め込みURLの末尾へ?autoplay=1を追加します。

通常の埋め込みURLが次の場合、

https://www.youtube.com/embed/kAiX0itnonM

自動再生する場合は次のように変更します。

https://www.youtube.com/embed/kAiX0itnonM?autoplay=1

iframeでは次のようにsrcを変更し、allowへautoplayを指定します。

<iframe src="https://www.youtube.com/embed/kAiX0itnonM?autoplay=1" title="YouTube video 1" allow="autoplay" allowfullscreen></iframe>

「動画2」「動画3」も自動再生する場合は、それぞれの埋め込みURLへ同じように?autoplay=1を追加します。ただし、ブラウザの自動再生ポリシーによって、音声付き動画の自動再生がブロックされる場合があります。

カスタマイズできる内容
index.htmlでは、「YouTube動画をタブ切り替えで表示」のタイトル、説明文、「動画1」「動画2」「動画3」のタブ名、各タブへ表示するYouTube動画を変更できます。タブと動画の対応関係を変更するときは、タブ側のdata-tabと動画パネル側のdata-panelを同じ値にしてください。また、各YouTube動画の埋め込みURLへ?autoplay=1を追加することで自動再生を指定できます。

style.cssでは全体の最大横幅、余白、背景色、枠線、角丸、タブの内側余白、タブ間隔、選択中のタブの色、動画周囲の余白、動画の角丸などを変更できます。

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

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

padding:32px;
タブ切り替え全体の内側余白です。値を大きくすると内容と外側の枠線との間隔が広がります。

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

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

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

padding:14px;
タブの内側余白です。値を大きくするとタブが高くなり、小さくすると低くなります。

border-radius:12px 12px 0 0;
タブ上部の角丸です。12pxを大きくすると上側の丸みが強くなり、小さくすると角張った表示になります。

margin-left:6px;
2つ目以降のタブとの間隔です。6pxを大きくするとタブ同士の間隔が広がり、小さくすると近くなります。

padding:18px;
YouTube動画周囲の内側余白です。値を大きくすると動画とパネルの枠との間隔が広がり、小さくすると狭くなります。

aspect-ratio:16/9;
YouTube動画の表示比率です。このサンプルでは16:9の比率で表示します。

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

@media (max-width:640px)
画面幅640px以下でスマートフォン向けの表示へ切り替える基準です。全体の内側余白をpadding:24px 18px;、タブの内側余白をpadding:12px 8px;へ変更します。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssでタブ切り替え全体にwidth:100%とmax-width:700pxを指定しているため、画面幅に合わせて全体が縮小します。YouTube動画にもwidth:100%とaspect-ratio:16/9を指定しているため、横幅に合わせて16:9の比率を保ったまま表示されます。また、画面幅640px以下では全体とタブの内側余白を小さくしているため、スマートフォン・タブレット・PCで利用できます。


こちらもおすすめ


コメント