動きのあるウェブサイト制作を目指して、クリックすると背景が暗転してコンテンツが浮かび上がるモーダルウィンドウを実装しよう。
モーダルウィンドウとは
モーダル(modal)ウィンドウは、元のウィンドウの上に別枠で表示されるウィンドウのこと。
主な目的としては以下の2つ。
・重要な情報への注意を喚起
・必要な入力がなされるまで、アプリケーションの実行をブロック
元のウィンドウの上にあるボタンなどをクリックすることで、見てほしいコンテンツを表示し、表示している間は、元のウィンドウの操作はできなくなるという訳。
早速実例
専門家でない限りコピペで済むのが一番!ということで、定番のjQueryを使ってみよう。
サイト上にボタンを設置して、それをクリックすることで、画像や文章などのモーダルウィンドウが立ち上がる。
せっかくなので複数のモーダルウィンドウを設置するパターンにしてみた。
【HTML】
1 | <button id="openModal">クリックしてね!その1</button> |
4 | <section id="modalArea" class="modalArea"> |
5 | <div id="modalBg" class="modalBg"></div> |
6 | <div class="modalWrapper"> |
7 | <div class="modalContents"> |
9 | <p>モーダルコンテンツその1の内容がここに表示されます。</p> |
11 | <div id="closeModal" class="closeModal"> |
16 | <!-- モーダルエリアその1ここまで --> |
18 | <button id="openModal02">クリックしてね!その2</button> |
21 | <section id="modalArea02" class="modalArea"> |
22 | <div id="modalBg" class="modalBg"></div> |
23 | <div class="modalWrapper"> |
24 | <div class="modalContents"> |
26 | <p>モーダルコンテンツその2の内容がここに表示されます。</p> |
28 | <div id="closeModal" class="closeModal"> |
【java】
5 | <script type= "text/javascript" > |
7 | $( '#openModal' ).click(function(){ |
8 | $( '#modalArea' ).fadeIn(); |
10 | $( '#closeModal , #modalBg' ).click(function(){ |
11 | $( '#modalArea' ).fadeOut(); |
16 | <!-- ↓2つめのモーダルウィンドウ --> |
17 | <script type= "text/javascript" > |
19 | $( '#openModal02' ).click(function(){ |
20 | $( '#modalArea02' ).fadeIn(); |
22 | $( '#closeModal , #modalBg' ).click(function(){ |
23 | $( '#modalArea02' ).fadeOut(); |
【CSS】
14 | background-color: rgba(30,30,30,0.9); |
21 | transform:translate(-50%,-50%); |
25 | background-color: #fff; |
ちょっと補足
モーダルウィンドウが立ち上がるのはボタンなので、デフォルトだと背景や罫線が入ってしまう。
ということでボタンをリセットしたいなら以下のCSSを追加しよう。
2 | background-color: transparent; |