电脑端弹出div,点击空白处,关闭当前弹窗
时间: 2024-10-17 19:06:06 浏览: 32
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
在网页开发中,通常使用JavaScript或者相关的前端框架(如jQuery、React或Vue.js)来实现这种动态弹出窗口并监听点击事件关闭的功能。以下是一个基本的示例,使用JavaScript:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>点击关闭弹窗</title>
<style>
.modal {
display: none; /* 初始隐藏 */
position: fixed;
z-index: 1; /* 高于其他元素 */
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.4); /* 模糊黑色背景 */
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%; /* 自定义宽度 */
}
/* 点击页面其他地方关闭 */
body.modal-open {
overflow: hidden;
}
</style>
</head>
<body>
<div id="myModal" class="modal">
<div class="modal-content">
<!-- 弹窗内容 -->
这里是弹窗的内容...
<button type="button" onclick="closeModal()">关闭</button>
</div>
</div>
<script>
function showModal() {
document.getElementById('myModal').style.display = "block"; // 显示弹窗
}
function closeModal() {
document.getElementById('myModal').style.display = "none"; // 隐藏弹窗
// 或者添加点击外部事件绑定
document.addEventListener("click", function (event) {
if (!event.target.matches('#myModal')) { // 确保不是在弹窗内部点击
closeModal();
}
}, false);
// 当点击非弹窗区域时移除事件监听器,防止多次触发
document.removeEventListener("click", closeModal, false);
}
// 触发弹窗
showModal();
</script>
</body>
</html>
```
在这个例子中,当`showModal`函数被调用时,会显示弹窗;点击弹窗内的“关闭”按钮或页面其他地方都会调用`closeModal`函数,将弹窗隐藏。注意,为了更好地效果,我们还添加了一个点击事件监听器,只有在点击非弹窗区域时才会关闭它。
阅读全文