タブ切替型の新着リスト

インタラクション Medium #js #tabs #news #feed

「ニュース/ブログ/イベント」を一つのカード内でタブ切替して見せる新着リストです。ボタンに付けた data-tab と、各リストの data-pane を JavaScript で照合し、選んだ種別のリストだけを表示、他は hidden 属性で隠します。

▶ プレビュー

解説

「ニュース/ブログ/イベント」を一つのカード内でタブ切替して見せる新着リストです。ボタンに付けた data-tab と、各リストの data-pane を JavaScript で照合し、選んだ種別のリストだけを表示、他は hidden 属性で隠します。表示の出し分けは要素の追加削除ではなく hidden の付け外しだけなので、DOM の構造を保ったまま軽く切り替わります。

使うと効く場面

  • コーポレートサイトのトップで、お知らせとブログと開催情報をスペースを取らず並べたいとき
  • 採用ページで「募集職種」「社員の声」「イベント」を切り替えて見せたいとき
  • サービス紹介で「機能」「料金」「事例」をコンパクトにまとめたいとき

カスタマイズはタブを増やすだけなら、ボタンと対応するリストを同じ data-tabdata-pane の値で一組追加します。アクセシビリティを高めるなら、ボタンに role="tab"aria-selected を、リストに role="tabpanel" を付け、左右キーで移動できるようにすると、より丁寧な実装になります。

よくある質問

タブを4つ以上に増やせますか?
増やせます。ボタンを一つ追加して data-tab に新しい値を付け、同じ値を data-pane に持つリストを一つ用意するだけです。JavaScript 側は値を見て一致するものだけ表示するので、コードを書き換える必要はありません。
JavaScript は必須ですか?
この実装では必須です。クリックでリストの hidden を切り替える処理を JavaScript が担っているためです。CSS だけで作る方法もありますが、ラジオボタンを隠して使うなどの工夫が必要になり、構造が複雑になります。
inspired by common WP/JS patterns / 追加日:2026-05-13
← すべてのスニペットへ戻る