knockout.js モーダルウィンドウ

2012/06/18

めも

モーダルウィンドウの内容

よく理解していないが…要は、ボタンクリックすると画面がグレーになってその上に別窓が表示されるってのがモーダルウィンドウと呼ばれるヤツらしい。

モーダルウィンドウの実装

やるべきことは下記。

ボタンクリック
↓↓↓
画面をグレーにする
↓↓↓
その上に別窓を表示
↓↓↓
閉じるボタン or 別窓の外側クリックで別窓閉じる

モーダルウィンドウの実装1:ボタンクリック

ボタンにclickバインディングを指定。

モーダルウィンドウの実装2:画面をグレーにする

ウィンドウの一番上(「z-index:9000;」とか指定)に縦横100%のブロック要素を追加。
※普段は非表示。表示する際はposition指定。
※とりあえずこれを「koModalMask」と名付けておく(後述で使うために)。

モーダルウィンドウの実装3:その上に別窓を表示

さらに上に(「z-index:9999;」とか指定)に好きなサイズのブロック要素を追加。
※普段は非表示。表示する際はposition指定。
※とりあえずこれを「koModalWindow」と名付けておく(後述で使うために)。

モーダルウィンドウの実装4:閉じるボタン or 別窓の外側クリックで別窓閉じる

「閉じるボタン」を押したらってのは単純にclickバインディングで対応。
「別窓の外側クリック」を押したらってのは「koModalMask」にclickバインディングを指定して対応。

サンプルソースについて

最終的には余計な記述を排除して、カスタムバインディングだけで良い感じにしたい。
まずは「koModalMask」「koModalWindow」をカスタムバインディングにしている内容は真偽値で表示・非表示の設定。
背景色をそのときの気分で変更できるようにサブプロパティ(?)を指定。
「koModalMask」用のブロック要素はbodyタグ直下に置いておくの無難。

新着(ニュース関連以外)

2018-07-26
年賀状で「新春」とか書くけど・・・何故なんだろうと8月を目前にした今、疑問に思った。
2018-05-16
PHPで画像のヘッダ情報(?)の「Orientation」を元に画像回転させたい。
2018-03-05
Android Studioをインストール。エミュレータを軽くするトコまで終わらせたかったけど、挫折した。
2018-02-23
プッシュ通知について調べてた時にでてきたServiceWorker。そのServiceWorkerについてのメモ。
2017-12-13
jqueryで取得したDOM要素をオブジェクトじゃなくて、配列で受け取りたい