【JS&CSS】タブ&モーダルを組み合わせてお知らせ表示を実装する

本記事では、以下のようなモーダルウィンドウを使った「お知らせ表示」の実装方法を、HTML / CSS / JavaScriptのコード付きで紹介します。

  • お知らせ 1
  • お知らせ 2
  • お知らせ 3
目次

HTML / CSS / JavaScript コード

<ul class="notice-list">
  <li class="notice-item" data-id="1">お知らせ 1</li>
  <li class="notice-item" data-id="2">お知らせ 2</li>
  <li class="notice-item" data-id="3">お知らせ 3</li>
</ul>

<!-- モーダルウィンドウ -->
<div id="modal" class="modal">
  <div class="modal-content">
    <p id="modal-text"></p>
    <span class="close-btn">閉じる</span>
  </div>
</div>

実装のポイント

本実装では、以下2つのUIをを組み合わせた実装になっています。

  • 操作中の画面上に重ねてウィンドウが表示される「モーダルウィンドウ」と呼ばれるUI
  • 選択したお知らせによって表示内容が変わる「タブメニュー」のようなUI

モーダルウィンドウの作り方

操作中の画面上に重ねて表示される、ダイアログやポップアップウィンドウの一種。ページ遷移なしに追加情報を確認できるのがポイントです。
通常、モーダルウィンドウが表示されると、背景の画面が暗くなって操作が一時的にロックされ、ユーザーはモーダルウィンドウ内の操作に集中できるようになっています。本実装では、

  • 画面全体を暗転させるマスク
  • 画面中央に配置するウィンドウ

の2つをpositionプロパティを使って配置し、クリック操作で表示・非表示を切り替えています。詳細については、以下記事をご覧ください。

タブの作り方

クリックしたタブによって表示する内容を変更する(要素同士を連携させる)には、カスタムデータ属性を使う方法があります。

カスタムデータ属性とは

idやclassなどと同じhtmlの属性で、自分オリジナルの名前をつけられるという特徴があります。

<div data-◯◯="□□"></div>

のように使います。

詳細については以下記事をご覧ください。


当サイトで公開しているWebデザインやUIの実装例は、一覧として以下記事に纏めています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次