我正在模拟一个淡出背景的弹出窗口。我通过简单地切换填充整个屏幕的 div 来做到这一点。我希望能够通过单击外部背景来关闭弹出窗口,但当您单击当前正在发生的新内容区域时却不能。我的代码:
JS:
function popbox() {
$('#overbox').toggle();
}
HTML:
<div class="popbox" onclick="popbox()"> Click Here </div>
<div id="overbox" onclick="popbox()">
<div id="infobox1">
<p>This is a new box</p>
<br />
<p>hello </p>
<br/><br/>
<p style="color:blue;text-align:center;cursor:pointer;" onclick="popbox()">close</p>
</div><!-- end infobox1 -->
</div> <!-- end overbox -->
CSS:
#overbox {
position: fixed;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
background: rgba(64, 64, 64, 0.5);
z-index: 999999;
display: none;
}
#infobox1 {
margin: auto;
position: absolute;
left: 35%;
top: 20%;
height: 300px;
width: 400px;
background-color: white;
border: 1px solid red;
}
.popbox {
cursor: pointer;
color: black;
border: 1px solid gray;
padding: 5px; 10px;
background: ghostwhite;
display: inline-block;
}
JSFiddle 链接:http: //jsfiddle.net/RrJsC/
同样,我希望它仅在您单击褪色背景或“关闭”(在 jsfiddle 中不起作用但在我的站点上)时切换,而不是在您单击它包含的白框内时切换。经过一些研究,我似乎正在寻找 .stopPropagation(),但我根本无法让它工作。