js模态对话框使用方法详解


Posted in Javascript onFebruary 16, 2017

模态框(Modal  Dialogue Box)也可叫做模态对话框,或者对话框,当一个模态框被打开时,用户可以与该对话框进行交互,点击关闭按钮可关闭该模态框!

功能实现:

1. 页面上有一个按钮,用于打开模态框,模态框默认隐藏;

2. 用户点击按钮,可打开模态框;用户点击模态框中的关闭或者点击页面其他地方可关闭该模态框

✦  点击页面其他地方,关闭模态框,可用window.onclick事件

✦  给关闭按钮绑定点击事件,按钮被点击,模态框Modal添加样式display:none;

✦  给button按钮绑定点击事件,当按钮被点击时,模态框Modal添加样式display:block;

✦  先获取页面上的button按钮,关闭按钮,以及模态框Modal

代码实现:

<html> 
<head> 
  <style> 
    /* 弹窗 (background) */ 
    .modal { 
      display: none; /* 默认隐藏 */ 
      position: fixed; 
      z-index: 1; 
      padding-top: 100px; 
      left: 0; 
      top: 0; 
      width: 100%; 
      height: 100%; 
      overflow: auto; 
      background-color: rgb(0,0,0); 
      background-color: rgba(0,0,0,0.4); 
    } 
 
    /* 弹窗内容 */ 
    .modal-content { 
      position: relative; 
      background-color: #fefefe; 
      margin: auto; 
      padding: 0; 
      border: 1px solid #888; 
      width: 35%; 
      box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19); 
      -webkit-animation-name: animatetop; 
      -webkit-animation-duration: 0.4s; 
      animation-name: animatetop; 
      animation-duration: 0.4s 
    } 
 
    /* 添加动画 */ 
    @-webkit-keyframes animatetop { 
      from {top:-300px; opacity:0} 
      to {top:0; opacity:1} 
    } 
 
    @keyframes animatetop { 
      from {top:-300px; opacity:0} 
      to {top:0; opacity:1} 
    } 
 
    /* 关闭按钮 */ 
    .close { 
      color: white; 
      float: right; 
      font-size: 28px; 
      font-weight: bold; 
    } 
 
    .close:hover, 
    .close:focus { 
      color: #000; 
      text-decoration: none; 
      cursor: pointer; 
    } 
 
    .modal-header { 
      padding: 2px 16px; 
      background-color: #5587A2; 
      color: white; 
    } 
 
    .modal-body {padding: 2px 16px;} 
 
    .modal-footer { 
      padding: 2px 16px; 
      background-color: #5587A2; 
      text-align: right; 
      color: white; 
    } 
  </style> 
</head> 
<body> 
  <!-- 打开弹窗按钮 --> 
  <button id="myBtn">打开弹窗</button> 
 
  <!-- 弹窗 --> 
  <div id="myModal" class="modal"> 
 
    <!-- 弹窗内容 --> 
    <div class="modal-content"> 
      <div class="modal-header"> 
        <span class="close">×</span> 
        <h2>弹窗头部</h2> 
      </div> 
      <div class="modal-body"> 
        <p>弹窗内容...</p> 
        <p>弹窗内容...</p> 
      </div> 
      <div class="modal-footer"> 
        <h3>弹窗底部</h3> 
      </div> 
    </div> 
 
  </div> 
  <script> 
    // 获取弹窗 
    var modal = document.getElementById('myModal'); 
 
    // 打开弹窗的按钮对象 
    var btn = document.getElementById("myBtn"); 
 
    // 获取 <span> 元素,用于关闭弹窗 that closes the modal 
    var span = document.getElementsByClassName("close")[0]; 
 
    // 点击按钮打开弹窗 
    btn.onclick = function() { 
      modal.style.display = "block"; 
    } 
 
    // 点击 <span> (x), 关闭弹窗 
    span.onclick = function() { 
      modal.style.display = "none"; 
    } 
 
    // 在用户点击其他地方时,关闭弹窗 
    window.onclick = function(event) { 
      if (event.target == modal) { 
        modal.style.display = "none"; 
      } 
    } 
  </script> 
</body> 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
超级退弹代码
Jul 07 Javascript
JQuery中each()的使用方法说明
Aug 19 Javascript
基于jQuery的公告无限循环滚动实现代码
May 11 Javascript
jQuery中ajax的使用与缓存问题的解决方法
Dec 19 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
Mar 02 Javascript
详解JavaScript正则表达式中的global属性的使用
Jun 16 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
Jul 27 Javascript
微信小程序 教程之模块化
Oct 17 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
Apr 20 Javascript
vue安装和使用scss及sass与scss的区别详解
Oct 15 Javascript
vscode中eslint插件的配置(prettier配置无效)
Sep 10 Javascript
jquery实现图片放大镜效果
Dec 23 jQuery
javascript获取以及设置光标位置
Feb 16 #Javascript
JavaScript实现翻页功能(附效果图)
Feb 16 #Javascript
浅谈$_FILES数组为空的原因
Feb 16 #Javascript
原生js实现秒表计时器功能
Feb 16 #Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
Feb 16 #Javascript
基于JS实现翻书效果的页面切换样式
Feb 16 #Javascript
js实现3d悬浮效果
Feb 16 #Javascript
You might like
PHP5多态性与动态绑定介绍
2015/04/03 PHP
Thinkphp事务操作实例(推荐)
2017/04/01 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
微信小程序之购物车功能
2020/09/23 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
Python元组知识点总结
2019/02/18 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
单位门卫岗位职责
2013/12/20 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
保护地球的宣传语
2015/07/13 职场文书
python3.7.2 tkinter entry框限定输入数字的操作
2021/05/22 Python