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 02 Javascript
JS控制输入框内字符串长度
May 21 Javascript
JS数组array元素的添加和删除方法代码实例
Jun 01 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
Feb 20 Javascript
微信小程序canvas写字板效果及实例
Jun 15 Javascript
Vue.js中extend选项和delimiters选项的比较
Jul 17 Javascript
Vue AST源码解析第一篇
Jul 19 Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 Javascript
JS实现提示框跟随鼠标移动
Aug 27 Javascript
javascript刷新父页面方法汇总详解
Oct 10 Javascript
vue循环中点击选中再点击取消(单选)的实现
Sep 10 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
Jan 27 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 编程请选择正确的文本编辑软件
2006/12/21 PHP
PHP 木马攻击防御技巧
2009/06/13 PHP
ie6 动态缩略图不显示的原因
2009/06/21 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
深入探寻javascript定时器
2015/01/02 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
Angular4学习之Angular CLI的安装与使用教程
2018/01/04 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
用Python进行基础的函数式编程的教程
2015/03/31 Python
详细介绍Ruby中的正则表达式
2015/04/10 Python
进一步理解Python中的函数编程
2015/04/13 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
python实现图书借阅系统
2019/02/20 Python
Python sorted排序方法如何实现
2020/03/31 Python
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
公益广告语集锦
2014/03/13 职场文书
党的群众路线教育实践活动心得体会(医院)
2014/11/03 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android