所以,我有一个我很满意的纯 CSS 模态窗口;它很轻而且很快。但是,我想添加一些我认为只能使用 javascript 才能完成的特定功能——即,我希望转义键触发模态框的消失并单击叠加层来执行相同的操作。
作为一个纯 css 模式,它依赖于 :target 伪属性,因此依赖于 url。所以,我决定试试这个:
document.onkeydown = function(evt) {
evt = evt || window.event;
if (evt.keyCode == 27) {
history.go(-1);
}
};
但是,通过在我的文档头中加载它,无论模式是否在屏幕上,ESC 都会触发返回事件。如果在模态可见时按下,我只希望 ESC 触发后退事件。 我该如何做到这一点?
顺便说一句,模态的 css 将容器display
属性从更改none
为block
。
.modalWrap {
display:none;
z-index:40001;
}
#dbw.modalWrap:target {
display: block;
}
的HTML:
<div class="modalWrap" id="dbw">
content
</div>