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 拾漏补遗
Dec 27 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
Dec 08 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
Feb 03 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
Jul 12 Javascript
Javascript学习指南
Dec 01 Javascript
js实现的早期滑动门菜单效果代码
Aug 27 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
Apr 18 Javascript
微信小程序开发之实现自定义Toast弹框
Jun 08 Javascript
Vue之Watcher源码解析(2)
Jul 19 Javascript
详解vue 模版组件的三种用法
Jul 21 Javascript
js中怎么判断两个字符串相等的实例
Jan 17 Javascript
vue router返回到指定的路由的场景分析
Nov 10 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
php下使用SMTP发邮件的代码
2008/01/10 PHP
php登陆页的密码处理方式分享
2013/10/14 PHP
php四种基础算法代码实例
2013/10/29 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
PHP实现的mysql读写分离操作示例
2018/05/22 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
window.open打开页面居中显示的示例代码
2013/12/27 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
详解ES6中的Map与Set集合
2019/03/22 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
vue.config.js中配置Vue的路径别名的方法
2020/02/11 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
python类参数self使用示例
2014/02/17 Python
Python yield 小结和实例
2014/04/25 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
详解python中的线程
2018/02/10 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
Python数据结构之图的应用示例
2018/05/11 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
python 字段拆分详解
2019/12/17 Python
python中for in的用法详解
2020/04/17 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
教师演讲稿范文
2014/01/08 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
幼儿园小班植树节活动方案
2014/03/04 职场文书
村容村貌整治方案
2014/05/21 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS