ブログ

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

BLOG

【5分で実装】モーダルを簡単に実装できるプラグイン「Remodal」がめちゃ便利

ども!

コーダーやフロントエンドの方は実務でモーダルを実装する機会が多いかと思います。

最近パッとモーダルを実装する方法ないかなー。と探してたところ「Remodal」というプラグインを見つけて

使ってみたらシンプルですぐ実装できたので紹介します。

実装サンプル

読み込むだけで以下のようになります。

実装方法

実装方法は主に2つあります。

  • ZIPファイルのダウンロード
  • CDNで読み込み

どちらの方法もjQuery必須ですので忘れずに読み込んでください

ダウンロードして使う場合

公式サイトからDownloadをクリックしてもらい「Source code(zip)」をクリックするとダウンロードされます。

必要なファイルは/Remodal-1.1.1 2/dist/の中にある

  • remodal.css
  • remodal-default-theme.css
  • remodal.min.js

の3つです。

これらをプロジェクトの中に入れてもらいHTMLで読み込みます。

<link rel="stylesheet" type="text/css" href="css/remodal.css">
<link rel="stylesheet" type="text/css" href="css/remodal-default-theme.css">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/remodal.min.js"></script>

CDNの場合

CDNで読み込む場合は以下です。

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/remodal/1.1.1/remodal.min.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/remodal/1.1.1/remodal-default-theme.min.css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/remodal/1.1.1/remodal.min.js"></script>

どちらの場合でもjqueryの読み込みの後にremodal.jsを読み込むようにしてください。

Remodalの使い方

Remodalを使うには当たり前ですが、開くための要素開いた時に表示する要素が必要です。

data-remodal-○○と指定することで閉じたり開いたりの機能を付与します。

上のサンプルを使って説明しますね。

表示する中身

<div class="remodal" data-remodal-id="modal">
  <p>ここにモーダルの内容が表示される</p>
  <button data-remodal-action="close" class="remodal-close"></button>
</div>

表示する要素の一番外側にはdata-remodal-id属性を指定します。ここをあとから記述するトリガーとなる要素と合わせることで連動します。

次にdata-remodal-action属性ですがcloseにすることで閉じるボタンの役割を果たすことができます。他にもcancelにするとキャンセルボタン、confirmだと確認ボタンとして機能します。

トリガーとなる要素

モーダルを表示させるためのボタンは以下のようになります。

<a data-remodal-target="modal" >ここをクリックすると</a>

data-remodal-target属性はモーダル表示させたい要素のdata-remodal-idと値を揃えることで連動させることができます。

今回はaタグを使っていますがdata-remodal-属性が揃っていれば要素はなんでも大丈夫です。

オプションの設定

data-remodal-options属性を追加することでオプションの設定も可能です。

data-remodal-options="オプション名:値"

オプション名

効果

デフォルト

hashTracking

URL末尾に#〇〇を付けたくない場合はfalseを指定する

true

closeOnConfirm

「data-remodal-action=”confirm”」で作った確認ボタンをクリックしたときの動作。falseで閉じなくなる

true

closeOnCancel

「data-remodal-action=”cancel”」で作ったキャンセルボタンをクリックしたときの動作。falseで閉じなくなる

true

closeOnEscape

escキーを押したときの動作。falseで閉じなくなる

true

closeOnOutsideClick

モーダル外の背景をクリックしたときの動作。falseで閉じなくなる

true

modifier

モーダルの背景に生成される要素に任意のクラス名を追加

なし

まとめ

いかがでしたか?

以前は自作でモーダルを作っていたのですがRemodalを使うとjavascriptを書かなくても基本的モーダルの機能を実装することができます。

レイヤーなども事前に用意されているのでかなり時間を短縮することができます。