SP向けモーダルウィンドウのテンプレート
SP向けモーダルウィンドウのテンプレート
Icon made from Icon Fonts is licensed by CC BY 3.0
フレームワークなしでのSP向けモーダルウィンドウの実装メモ。
モーダルウィンドウの注意
画像の拡大などによく使われるが、アクセシビリティ的によくない場合が多いので注意。 経験的によくあるbadな部分は、以下3つだと思う。 - 閉じ方がわかりにくく、元のページに戻れない - スクロールできるのかよくわからない - 実装ミスでコンテンツ全体が結局描画されない(かつ、そのせいで閉じる系リンクが表示されず、ページ更新orブラウザの閉じるでしか復帰できない)
特にモーダルウィンドウに拘らなければ、collapse系の開閉型コンテンツにしたほうがいい場合もあるので実装時には注意が必要。
テンプレート
Qiitaのこちらの記事を参考にしました。
SP向けといっている部分は、flex
をふんだんに使っているためです。
実装はcodepen
See the Pen sp_modal by Cartman (@Cartman0) on CodePen.
code memo
階層構造
.modal
(position: fixed
により、画面全体を基準とする).modal_container
(モーダルウィンドウのラッパー、水平垂直中央ぞろえはこの部分)modal_inner
(実際にモーダルウィンドウの部分、テンプレートでは背景白)modal_block
(実際のコンテンツを配置、非表示・表示(display: hidden
,display: block
)はこの部分で行う)modal_header
:モーダルウィンドウのヘッダ部分(テンプレでは閉じるリンクを配置)modal_content
: 主要コンテンツmodal_footer
:モーダルウィンドウのフッタ部分(テンプレでは閉じるリンクを配置)
Note: 画面全体の高さは、ビューポートである100vh
で取得
js
基本的には,クラス.is-active
の追加・削除でモーダルウィンドウの表示・非表示を行う。