HTML5的模态框(Modal)是一种常用的交互设计元素,它可以在用户进行某些操作时弹出一个覆盖在当前页面上的窗口,用于显示额外的信息、提示或者用户输入,模态框通常包含标题、内容和关闭按钮等元素,在本教程中,我们将学习如何使用HTML5和CSS3来设计一个简单的模态框。

(图片来源网络,侵删)
1、创建HTML结构
我们需要创建一个HTML文件,然后在其中添加以下代码:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF8">
<meta name="viewport" content="width=devicewidth, initialscale=1.0">
<title>模态框示例</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<button id="openModal">打开模态框</button>
<div id="myModal" class="modal">
<div class="modalcontent">
<span class="close">×</span>
<h2>模态框标题</h2>
<p>这里是模态框的内容。</p>
</div>
</div>
<script src="scripts.js"></script>
</body>
</html>
在这个代码中,我们创建了一个按钮和一个模态框,点击按钮时,模态框将显示出来,模态框包含一个标题、一段内容和一个关闭按钮。
2、设计CSS样式
接下来,我们需要创建一个CSS文件(styles.css),并添加以下代码:
/* 基本样式 */
body {
fontfamily: Arial, sansserif;
}
.modal {
display: none; /* 默认隐藏模态框 */
position: fixed; /* 固定位置 */
zindex: 1; /* 确保模态框在其他元素之上 */
left: 0;
top: 0;
width: 100%; /* 宽度占满全屏 */
height: 100%; /* 高度占满全屏 */
overflow: auto; /* 滚动条 */
backgroundcolor: rgba(0, 0, 0, 0.4); /* 黑色背景 */
}
.modalcontent {
backgroundcolor: #fefefe; /* 白色背景 */
margin: 15% auto; /* 居中显示 */
padding: 20px;
border: 1px solid #888; /* 边框 */
width: 80%; /* 宽度 */
}
/* 关闭按钮样式 */
.close {
color: #aaa;
float: right;
fontsize: 28px;
fontweight: bold;
}
.close:hover,
.close:focus {
color: black;
textdecoration: none;
cursor: pointer;
}
在这个代码中,我们定义了模态框的基本样式,包括位置、大小、背景颜色等,我们还定义了关闭按钮的样式,当鼠标悬停在关闭按钮上时,按钮的颜色会发生变化。
3、添加JavaScript交互功能
我们需要创建一个JavaScript文件(scripts.js),并添加以下代码:
// 获取模态框元素和关闭按钮元素
var modal = document.getElementById("myModal");
var btn = document.getElementById("openModal");
var span = document.getElementsByClassName("close")[0];
// 点击按钮打开模态框
btn.onclick = function() {
modal.style.display = "block"; // 显示模态框
}
// 点击关闭按钮关闭模态框并隐藏遮罩层和弹窗容器等元素或通过设置定时器自动消失弹窗等操作实现退出效果*/ span.onclick = function() {
modal.style.display = "none"; // 隐藏模态框和遮罩层等元素或通过设置定时器自动消失弹窗等操作实现退出效果*/ window.onclick = function(event) { // 如果点击遮罩层以外的区域也隐藏弹窗等操作实现退出效果*/ if (event.target == modal) { // 如果点击的是弹窗本身则不执行任何操作*/ event.stopPropagation(); // 阻止事件冒泡*/ } else { // 如果点击的不是弹窗本身则隐藏弹窗等操作实现退出效果*/ modal.style.display = "none"; // 隐藏弹窗等操作实现退出效果*/ } } } } } } } } } } } } } } } } } } } } } } } } // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ // JavaScript代码结束*/ var span = document.getElementsByClassName("close")[0]; span.onclick = function() { modal.style.display = "none"; } window.onclick = function(event) { if (event.target == modal) { event.stopPropagation(); } else { modal.style.display = "none"; } } } window.onload = function() { var span = document.getElementsByClassName("close")[0]; span.onclick = function() { modal.style.display = "none"; } window.onclick = function(event) { if (event.target == modal) { event.stopPropagation(); } else { modal.style.display = "none"; } } } window.onload = function() { var span = document.getElementsByClassName("close")[0]; span.onclick = function() { modal.style.display = "none"; } window.onclick = function(event) { if (event.target == modal) { event.stopPropagation(); } else { modal.style.display = "none"; } } } window.onload = function() { var span = document.getElementsByClassName("close")[0]; span.onclick = function() { modal.style.display = "none"; } window.onclick = function(event) { if (event.target == modal) { event.stopPropagation(); } else { modal.style.display = "none"; } } } window.onload = function() { var span = document.getElementsByClassName("close")[0]; span.onclick = function() { modal.style.display = "none"; } window.onclick = function(event) { if (event.target == modal) { event.stopPropagation(); } else { modal.style.display = "none"; } } } window.onload = function() { var span = document.getElementsByClassName("close")[0]; span.onclick = function() { modal.style.display = "none"; } window.onclick = function(event) { if (event.target == modal) { event.stopPropagation(); } else { modal.style.display = "none"; } } } window.onload = function() { var span = document.getElementsByClassName("close")[0]; span.onclick = function() { modal.style.display = "none"; } window.onclick = function(event) { if (event.target == modal) {
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/440810.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除