模态弹窗
模态弹窗(Modal)是一种常见的用户交互方式,常用于确认提示、登录注册、表单输入等场景。使用 jQuery 可以快速实现动态显示、关闭、动画过渡等功能。
功能需求
- 点击按钮打开弹窗
- 显示遮罩层并禁用页面滚动
- 点击关闭按钮或遮罩区域关闭弹窗
- 可扩展支持嵌套表单、动态内容加载等
HTML 结构示例
<button id="openModal">打开弹窗</button>
<div class="modal-mask"></div>
<div class="modal-box">
<div class="modal-header">
<span class="title">提示</span>
<span class="close-btn">×</span>
</div>
<div class="modal-content">
<p>这是一个 jQuery 实现的模态弹窗。</p>
</div>
</div>
jQuery 实现逻辑
$(function () {
$("#openModal").click(function () {
$(".modal-mask, .modal-box").fadeIn();
$("body").css("overflow", "hidden");
});
$(".close-btn, .modal-mask").click(function () {
$(".modal-mask, .modal-box").fadeOut();
$("body").css("overflow", "auto");
});
});
CSS 样式建议
.modal-mask {
display: none;
position: fixed;
inset: 0;
background-color: rgba(0, 0, 0, 0.5);
z-index: 99;
}
.modal-box {
display: none;
position: fixed;
top: 50%;
left: 50%;
width: 300px;
background: #fff;
transform: translate(-50%, -50%);
z-index: 100;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}
.modal-header {
padding: 10px;
background-color: #007bff;
color: white;
display: flex;
justify-content: space-between;
align-items: center;
}
.modal-content {
padding: 20px;
color: #333;
}
.close-btn {
cursor: pointer;
font-size: 20px;
}
完整示例代码
源码
<style>
body {
height: 150px;
}
.modal-mask {
display: none;
position: fixed;
inset: 0;
background-color: rgba(0, 0, 0, 0.5);
z-index: 99;
}
.modal-box {
display: none;
position: fixed;
top: 50%;
left: 50%;
width: 300px;
background: #fff;
transform: translate(-50%, -50%);
z-index: 100;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}
.modal-header {
padding: 10px;
background-color: #007bff;
color: white;
display: flex;
justify-content: space-between;
align-items: center;
}
.modal-content {
padding: 20px;
color: #333;
}
.close-btn {
cursor: pointer;
font-size: 20px;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<body>
<button id="openModal">打开弹窗</button>
<div class="modal-mask"></div>
<div class="modal-box">
<div class="modal-header">
<span class="title">提示</span>
<span class="close-btn">×</span>
</div>
<div class="modal-content">
<p>这是一个 jQuery 实现的模态弹窗。</p>
</div>
</div>
<script>
$(function () {
$("#openModal").click(function () {
$(".modal-mask, .modal-box").fadeIn();
$("body").css("overflow", "hidden");
});
$(".close-btn, .modal-mask").click(function () {
$(".modal-mask, .modal-box").fadeOut();
$("body").css("overflow", "auto");
});
});
</script>
</body>
相关内容
- 什么是 jQuery 了解什么是 jQuery,这款流行的 JavaScript 库如何简化网页的 DOM 操作、事件处理和 Ajax 调用,帮助前端开发者高效构建交互式网页,适合初...
- 引入方式 详细介绍 jQuery 的多种引入方式,包括通过 CDN 和本地下载的方式,帮助开发者快速搭建开发环境并优化网页加载性能,适合初学者和进阶用户参考学习。
- 基本语法 介绍 jQuery 的基本语法结构,包括选择器、事件绑定和链式调用,帮助初学者快速掌握如何用简洁代码操作 DOM,提高前端开发效率。
- 基础选择器 详细讲解 jQuery 的基础选择器用法,帮助开发者轻松选中 DOM 元素,掌握 ID、类名、标签选择器等常见选择技巧,提高网页操作效率。
- 层级选择器 介绍 jQuery 层级选择器的用法,包括子元素选择器、后代选择器、兄弟选择器等,帮助开发者精准定位复杂 DOM 结构中的元素,提升操作效率。
- 过滤选择器 介绍 jQuery 过滤选择器的使用方法,包括 :first、:last、:eq、:gt、:lt 等伪类选择器,帮助开发者精准筛选符合条件的元素,提高操作灵活性...