簡単なモーダルをjQueryで実装する流れ
モーダルとは
例えば、Twitterの投稿ボタンを押すと・・・
こうなります。
これが、"モーダル"です。
この記事では、このような"モーダル"を筆者の環境(Mac OS)で1から実装していく過程を公開します。
実装手順
フォルダなどを準備する
ターミナルを開き、ホームディレクトリに「modal」というフォルダを作成します。
modalディレクトリに移動します。
html、css、jQueryを記述するためのファイルを作成します。
念のため、作成できているか確認しておきます。
OKです!
VS codeで、modalフォルダを開きます。
ブラウザに最低限の表示をさせる
modal.htmlを編集します。
ひとまずここまで記入します。
Chromeで、新規タブを ⌘ + T で開き、⌘ + O で modalフォルダ内のmodal.htmlを開きます。
ブラウザはこうなっています。
少し寂しいので、背景画像を指定します。
フリー画像がダウンロードできるPixabay (https://pixabay.com/ja/ )でMacbookと検索して手に入れた画像をmodalフォルダに配置します。
modal.cssを編集します。
ここまでで、ブラウザはこんな感じになっています。
モーダルの中身を作り込んでいく
次に、モーダルの中身を実装します。(modal.html)
「モーダル」という文字をdivで囲いました。
modal-contentsにプロパティと値を設定します。(modal.css)
これで、少しだけモーダルに近づきました !
この記事では、これを表示・非表示にさせます。
モーダルをカバーしている部分を作り込んでいく
モーダルの背景を実装していきます。
先ほどのdivを、さらに別のdivで囲います。(modal.html)
モーダルの背景っぽくcssを適応させます。
こんな感じになりました!
モーダルを表示させる
さてここからは、jQueryを編集していきます。
この2行をmodal.htmlのheadタグ内に追記します。
jQueryを使う宣言をして、自分で作成したjQueryのファイル(この記事では、modal.js)を読み込んでいます。
続いて、modal.jsを編集します。
この記述をしてブラウザをリロードした時に・・・・
このような表示が出てこれば、jQueryが正しく読み込めています。
alert('OK'); は消しておきます。
次に、モーダルをデフォルトで非表示にするために、modal.cssの.modal-wrapperに
を追記します。
さて、modal.jsを編集していきましょう。
画面のどこかをクリックした時にjQueryが反応するようにしました。
先ほどと同じように、OKのポップアップが出ることを確認して、alert('OK')を消去します。
alert('OK')のあった箇所にこの記述をします。
ブラウザのどこかをクリックするとモーダルが表示されます。
クリック前
クリック後
モーダルを非表示にする
ここからは、モーダルを非表示にしていきます。
まずmodal.jsに、
を追記します。
これにより、モーダル部分をクリックしたらモーダルが消えるようになりましたが、
モーダルを表示するイベントが、"画面全体をクリックした時"と指定してしまっていたため、表示・非表示が繰り返し起こるという自体が起こってしまいました。
そこで、
1回だけイベントが発生するoneメソッドを使用しました。
→参考サイト (https://pisuke-code.com/jquery-execute-event-only-once/)
modal.js
これで、ひとまず画面をクリックしたらモーダルが表示され、モーダルをクリックしたら非表示になるという動作を実装することができました。
画面をクリックした後
モーダルをクリックした後
以上、簡単ですがモーダルを実装する流れについて書きました。