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.kdun.com/ask/371253.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复