だから、私は満足している純粋な CSS モーダル ウィンドウを持っています。軽くて速い。ただし、javascriptでしか実現できないと思われる特定の機能を追加したいと思います。つまり、エスケープキーでモーダルの非表示をトリガーし、オーバーレイをクリックして同じことを行います。
純粋な css モーダルであるため、:target 疑似属性に依存しているため、URL に依存しています。だから、私はこれを試すことにしました:
document.onkeydown = function(evt) {
evt = evt || window.event;
if (evt.keyCode == 27) {
history.go(-1);
}
};
ただし、それをドキュメント ヘッドにロードすることで、モーダルが画面上にあるかどうかに関係なく、ESC は back イベントをトリガーします。モーダルが表示されているときに押された場合にのみ、ESC が戻るイベントをトリガーするようにします。 どうすればそれを達成できますか?
ちなみにモーダルのcssはcontainerdisplay
属性を からnone
に変更していますblock
。
.modalWrap {
display:none;
z-index:40001;
}
#dbw.modalWrap:target {
display: block;
}
HTML:
<div class="modalWrap" id="dbw">
content
</div>