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 相关文章推荐
基于jQuery的history历史记录插件
Dec 11 Javascript
某人初学javascript的时候写的学习笔记
Dec 30 Javascript
javascript禁用Tab键脚本实例
Nov 22 Javascript
Event altKey,ctrlKey,shiftKey属性解析
Dec 18 Javascript
JavaScript基础教程之alert弹出提示框实例
Oct 16 Javascript
jQuery实现简单的间隔向上滚动效果
Mar 09 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
Sep 02 Javascript
jQuery获取及设置表单input各种类型值的方法小结
May 24 Javascript
vue项目打包部署_nginx代理访问方法详解
Sep 20 Javascript
JavaScript函数的4种调用方法实例分析
Mar 05 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
Jun 03 Javascript
JS实现公告上线滚动效果
Jan 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
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
Vue.js动态组件解析
2016/09/09 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
基于zepto.js实现登录界面
2017/10/09 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
python获取指定网页上所有超链接的方法
2015/04/04 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
计算机专业推荐信范文
2013/11/20 职场文书
酒店led欢迎词
2014/01/09 职场文书
单位成立周年感言
2014/01/26 职场文书
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
退休教师欢送会主持词
2014/03/31 职场文书
供货协议书
2014/04/22 职场文书
考博导师推荐信范文
2015/03/27 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL