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 相关文章推荐
JavaScript 格式字符串的应用
Mar 29 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
Oct 12 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
Apr 07 Javascript
用javascript对一个json数组深度赋值示例
Jul 27 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
Mar 25 Javascript
全面理解JavaScript中的继承(必看)
Jun 16 Javascript
JavaScript门面模式详解
Oct 19 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
Oct 25 Javascript
解析Json字符串的三种方法日常常用
May 02 Javascript
浅谈angularJS2中的界面跳转方法
Aug 31 Javascript
vue-router之nuxt动态路由设置的两种方法小结
Sep 26 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 Vue.js
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
PHP 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
PHP setTime 设置当前时间的代码
2012/08/27 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
JavaScript实现弹出广告功能
2017/03/30 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
JS控制下拉列表左右选择实例代码
2020/05/08 Javascript
python将ip地址转换成整数的方法
2015/03/17 Python
浅谈Python中copy()方法的使用
2015/05/21 Python
Python编程中的文件操作攻略
2015/10/16 Python
Python 常用 PEP8 编码规范详解
2017/01/22 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
体育专业个人的求职信范文
2013/09/21 职场文书
省级优秀班集体申报材料
2014/05/25 职场文书
2015双创工作总结
2015/07/24 职场文书
应收账款管理制度
2015/08/06 职场文书
如何做好员工培训计划?
2019/07/09 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL