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 相关文章推荐
侧栏跟随滚动的简单实现代码
Mar 18 Javascript
图片无缝滚动代码(向左/向下/向上)
Apr 10 Javascript
Jquery动态进行图片缩略的原理及实现
Aug 13 Javascript
addEventListener 的用法示例介绍
May 07 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
Jun 20 Javascript
学习Javascript面向对象编程之封装
Feb 23 Javascript
Angular2 环境配置详细介绍
Sep 21 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
Sep 23 Javascript
js实现下拉菜单效果
Mar 01 Javascript
基于node.js之调试器详解
Aug 22 Javascript
Js中将Long转换成日期格式的实现方法
Jun 05 Javascript
JS内部事件机制之单线程原理
Jul 02 Javascript
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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
Javascript基础教程之数组 array
2015/01/18 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python写入中英文字符串到文件的方法
2015/05/06 Python
Python入门之modf()方法的使用
2015/05/15 Python
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
python实现顺时针打印矩阵
2019/03/02 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
keras中的卷积层&amp;池化层的用法
2020/05/22 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
骨干教师培训制度
2014/01/13 职场文书
法人授权委托书范本
2014/09/17 职场文书
安全隐患整改报告
2014/11/06 职场文书
三十年再续同学情倡议书
2019/11/27 职场文书
手残删除python之后的补救方法
2021/06/26 Python