使用 Html、CSS 和 JavaScript 创建模态弹出框的方法

介绍

在创建网页设计时,要考虑的最重要的事情之一是用户交互性。用户交互性的一个很好的例子是模式框。

模式框主要显示为基于用户执行的操作的消息框在浏览器中。模态框有不同的形式和形状,包括警报框、Flash 通知框、对话框、灯箱。等。

模态框的独特之处在于,它禁用浏览器中的主窗口,但使其保持可见,模态窗口在网页前面显示为子窗口。

在应用程序中使用模态的一些重要情况包括:

显示针对某些操作过程的警告,这些警告可能是不可逆的。

  • 新信息上的闪光通知。
  • 增加用户互动和参与度。

模态也有其缺点,因为:

  • 它们可能会中断用户工作流。
  • 他们立即要求用户的注意。
  • 他们在后台禁用内容,这在某些情况下可能会令人沮丧。

现在让我们开始创建模态弹出框

有一个 index.html 文件:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://kit.fontawesome.com/a71707a89a.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="./style.css"/>
<title>Popup Box</title>
</head>
<body>
<div id="popUpOverlay"></div>
<div id="popUpBox">
<div id="box">
<i class="fas fa-check-circle fa-5x"></i>
<h1>Here Goes Your Popup</h1>
<div id="closeModal"></div>
</div>
</div>
<button onclick="Alert.render('You look very pretty today.')" class="btn">Show Alert</button>
<script src="./app.js"></script>
</body>
</html>

在上面的索引标记页面中,我们在 head 标签中有一个Font Awesome脚本,我们将在模态框中使用它来显示一个图标。我们还在索引页面上链接了CSS和javascript页面。

在索引页的正文中,我们有一些重要的HTML属性,如id,稍后将在javascript文件中用于操作页面。

最后在我们的按钮标签中,我们有一个onclick事件属性,该属性具有Alert函数,为我们提供了在页面上显示模态消息的功能。

然后增加一个 style.css

body{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.btn{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: pink;
  font-size: 20px;
  color: white;
  padding: 10px 30px;
  cursor: pointer;
}
#popUpBox{
  width: 500px;
  overflow: hidden;
  background: pink;
  box-shadow: 0 0 10px black;
  border-radius: 10px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 9999;
  padding: 10px;
  text-align: center;
  display: none;
}

在style.css文件中,我们将页面的框大小设置为边框框。此属性允许我们在元素的总宽度和高度中包含填充和边框。

然后我们使用 .btn类设置按钮样式。这使我们能够定位按钮,该按钮允许我们在页面中心显示模态。

最后,使用 #popUpBox,我们可以将模态定位在页面的中心。

使用z-index 属性,我们可以将模态堆叠在页面中其他元素的前面。

在 style.css文件中要注意的最重要的事情是,我们将 display 属性的初始状态设置为none。其原因将在app.js文件中解释。

app.js

var Alert = new CustomAlert();
 
function CustomAlert(){
  this.render = function(){
      //Show Modal
      let popUpBox = document.getElementById('popUpBox');
      popUpBox.style.display = "block";
      //Close Modal
      document.getElementById('closeModal').innerHTML = '<button οnclick="Alert.ok()">OK</button>';
  }
  
this.ok = function(){
  document.getElementById('popUpBox').style.display = "none";
  document.getElementById('popUpOverlay').style.display = "none";
}
}

在这里,我们有一个名为 Alert 的全局变量,它实例化了一个名为CustomAlert() 的函数。在此函数中,我们:

已访问#popUpBox (id)。有了这个,我们将显示设置为块,当单击按钮标签时显示模态。请记住,CSS 文件中的初始状态设置为none。

通过访问HTML文件中的closeModal (id) 关闭了模式。有了这个,我们可以设置一个带有onclick事件属性的 HTML 按钮标签。在那里,我们声明了一个名为ok() 的函数。

最后,引用ok()函数,当单击按钮时,我们将模态的 CSS 属性设置为 none。

有了这个,我们应该得到下面的结果:
在这里插入图片描述

最后

大家可以根据需要设置样式,并在您正在处理的任何项目中实现它。

我知道设计可能不是最好的,但本文的目标更侧重于javascript实现而不是设计。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
在 JSP 页面中使用 jQuery 和 LayUI 实现弹出模态,遵循以下步骤: 1. 首先在 JSP 页面中引入 jQuery 和 LayUI 库: ```html <!-- 引入 jQuery 库 --> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <!-- 引入 LayUI 样式库 --> <link rel="stylesheet" href="https://cdn.bootcss.com/layui/2.5.6/css/layui.min.css"> <!-- 引入 LayUI JavaScript 库 --> <script src="https://cdn.bootcss.com/layui/2.5.6/layui.all.js"></script> ``` 2. 在 JSP 中添加一个按钮,并为它添加一个 id: ```html <button type="button" id="myBtn" class="layui-btn layui-btn-normal">弹出模态</button> ``` 3. 在 JS 文件中编写弹出模态的代码: ```javascript $(document).ready(function(){ $("#myBtn").click(function(){ layui.use('layer', function(){ var layer = layui.layer; layer.open({ title: '模态标题', content: '模态内容' }); }); }); }); ``` 4. 在 JSP 页面中添加模态HTML 代码: ```html <!-- 模态弹出 --> <div class="layui-layer layui-layer-dialog" id="layui-layer1" type="dialog" times="1" showtime="0" contype="string" style="z-index: 19891014; width: auto; height: auto; top: 53.5px; left: 547px;"> <div class="layui-layer-title" style="cursor: move;">模态标题</div> <div class="layui-layer-content">模态内容</div> <span class="layui-layer-setwin"><a class="layui-layer-ico layui-layer-close layui-layer-close1" href="javascript:;"></a></span> </div> ``` 这样,在 JSP 页面中点击按钮就会弹出一个模态。你可以根据需要修改模态的标题、内容和按钮等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琴歌声声送我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值