【JavaScript】Micromodal.jsで簡単にモーダルを実装する方法

モーダルウィンドウは、ウェブページ上でユーザーに対して特定のコンテンツを強調するためによく使われます。Micromodal.jsは、軽量でシンプルなモーダルウィンドウを実装するためのライブラリです。この記事では、Micromodal.jsを使用して簡単にモーダルを実装する方法を、具体例を交えて紹介します。

Micromodal.jsの導入方法

Micromodal.jsを導入するには、CDNやnpmなどのパッケージマネージャを使用します。

CDNを使用する場合

以下のコードをHTMLのタグ内に追加してください。

<script src="https://unpkg.com/micromodal/dist/micromodal.min.js"></script>

npmを使用する場合

npmを使ってMicromodal.jsをインストールするには、次のコマンドを実行します。

npm install micromodal

モーダルのHTML構造を作成

Micromodal.jsを使用するためには、特定のHTML構造を作成する必要があります。以下のコードは、Micromodal.jsで使用する基本的なモーダルのHTML構造です。

<!-- モーダルを開くボタン -->
<button data-micromodal-trigger="modal-1">モーダルを開く</button>

<!-- モーダル本体 -->
<div class="modal micromodal-slide" id="modal-1" aria-hidden="true">
  <div class="modal__overlay" tabindex="-1" data-micromodal-close>
    <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-1-title">
      <header class="modal__header">
        <h2 class="modal__title" id="modal-1-title">モーダルのタイトル</h2>
        <button class="modal__close" aria-label="Close modal" data-micromodal-close></button>
      </header>
      <main class="modal__content" id="modal-1-content">モーダルのコンテンツをここに追加します。</main>
      <footer class="modal__footer">
        <button class="modal__btn" data-micromodal-close aria-label="Close this dialog window">閉じる</button>
      </footer>
    </div>
  </div>
</div>

上記のコードでは、data-micromodal-trigger属性を持つボタンがモーダルを開き、data-micromodal-close属性を持つ要素がモーダルを閉じます。モーダルのコンテンツは、modal__contentクラス内に追加することで表示されます。

Micromodalの初期化

次に、JavaScriptを使ってMicromodal.jsを初期化します。この初期化処理により、ページ上のモーダルが正しく動作するようになります。初期化は以下のように行います。

<script>
  MicroModal.init();
</script>

このスクリプトをページのフッターや、ページの最後に配置することで、モーダルが正しく動作します。

オプション設定でのカスタマイズ

Micromodal.jsは、様々なオプションを使用してモーダルの動作をカスタマイズすることができます。以下は、いくつかのオプションを設定した例です。

MicroModal.init({
  openTrigger: 'data-custom-open', // モーダルを開くカスタムトリガー
  closeTrigger: 'data-custom-close', // モーダルを閉じるカスタムトリガー
  disableScroll: true, // モーダルを開いている間、ページのスクロールを無効化
  awaitCloseAnimation: true, // モーダルが閉じるアニメーション完了後に閉じる
});

上記の例では、モーダルが開かれている間、ページのスクロールを無効にし、閉じるアニメーションが完了するまでモーダルが閉じないように設定しています。

モーダルのスタイルをCSSで調整

Micromodal.jsは、デフォルトのスタイルが含まれていないため、必要に応じてCSSでデザインを調整する必要があります。以下は、シンプルなモーダルのスタイル例です。

.modal__overlay {
  background-color: rgba(0, 0, 0, 0.7);
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.modal__container {
  background: white;
  padding: 2rem;
  max-width: 500px;
  width: 100%;
  border-radius: 4px;
}

.modal__title {
  margin: 0;
}

.modal__close {
  background: transparent;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
}

このCSSを使用することで、モーダルのオーバーレイやコンテナ、閉じるボタンなどのスタイルを簡単に調整できます。

まとめ

Micromodal.jsを使うと、非常にシンプルな手順でモーダルウィンドウを実装できます。基本的には、モーダルのHTML構造を作成し、MicroModal.init()を使って初期化するだけで完了です。オプション設定やCSSによるデザインのカスタマイズを組み合わせることで、より自分好みのモーダルを作成することができます。