ブログ

日々の開発で得た知見や、技術的な発見をアウトプットしていきます。フロントエンド開発を中心に、実装のヒントやトラブルシューティング、新しい技術の検証結果など、実践的な情報を発信。エンジニアとしての成長の記録であり、同じ課題に直面する方々への導きとなることを目指しています。

BLOG

【JavaScript】タブメニューの実装方法

今回はJavaScriptを使用してタブメニューを実装する方法を簡単に解説します。

タブメニューは、複数のコンテンツを表示する際にユーザーがそれらを簡単に切り替えるための便利なUI要素です。具体的には、HTML、CSS、JavaScriptを使用して、タブの切り替え機能を実装します。

実装サンプル

実装方法

HTMLの構造とスタイリング

HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>タブメニュー</title>
</head>
<body>

<div class="tabs">
  <button class="tablink tablink-01" onclick="openTab('tab1')">タブ1</button>
  <button class="tablink tablink-02" onclick="openTab('tab2')">タブ2</button>
  <button class="tablink tablink-03" onclick="openTab('tab3')">タブ3</button>
</div>

<div id="tab1" class="tab active">
  <h2>タブ1のコンテンツ</h2>
  <p>タブ1の内容をここに記述します。</p>
</div>

<div id="tab2" class="tab">
  <h2>タブ2のコンテンツ</h2>
  <p>タブ2の内容をここに記述します。</p>
</div>

<div id="tab3" class="tab">
  <h2>タブ3のコンテンツ</h2>
  <p>タブ3の内容をここに記述します。</p>
</div>
</body>
</html>

CSS

.tab {
  display: none; 
}

.active {
  display: block; 
}

#tab1 {
  background: red;
}

#tab2 {
  background: blue;
}

#tab3 {
  background: green;
}

タブメニューのHTML構造は、選択肢となるタブ(ボタン)の部分と、各タブに対応するコンテンツの部分から構成されます。

buttonにはそれぞれクリックイベントを指定していますがこれは後で解説します。

各タブにはわかりやすいように異なる色のbackgroundを指定しています。

tabクラスは初期の状態では非表示なっており、activeクラスが付与された場合表示されるような仕様でJavascriptを書いていきます。

JavaScriptを使ったタブの切り替え処理

JavaScript

function openTab(tabName) {
  let tabs = document.getElementsByClassName("tab");
  for (let i = 0; i < tabs.length; i++) {
    tabs[i].classList.remove("active");
  }

 document.getElementById(tabName).classList.add("active");
}

openTabというボタンがクリックされたときに選択されたタブを表示する関数を用意します。

引数として割らされたタブ名に対応するタブにactiveクラスを追加しています。

これにより、タブメニューが実装され、ユーザーがタブをクリックすることで、対応するコンテンツが表示されます。

まとめ

今回は実務でちょくちょくでてくるタブメニューを機能だけに絞って簡単に実装しました。

ボタンに対応するコンテンツにactiveクラスを追加したり取ったりするだけですね。

実務で使う場合はもっとスタイリングしたりタブボタンにもクラスを追加したりなどして使ってください。