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 相关文章推荐
Web版彷 Visual Studio 2003 颜色选择器
Jan 09 Javascript
JavaScript setTimeout和setInterval的使用方法 说明
Mar 25 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
Apr 07 Javascript
简介JavaScript中valueOf()方法的使用
Jun 05 Javascript
JQuery中Ajax()的data参数类型实例分析
Dec 15 Javascript
JS+CSS3实现超炫的散列画廊特效
Jul 16 Javascript
js 点击a标签 获取a的自定义属性方法
Nov 21 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
Sep 26 Javascript
基于jQuery解决ios10以上版本缩放问题
Nov 03 jQuery
加载 vue 远程代码的组件实例详解
Nov 20 Javascript
javascript面向对象创建对象的方式小结
Jul 29 Javascript
Windows下安装 node 的版本控制工具 nvm
Feb 06 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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
url decode problem 解决方法
2011/12/26 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
js精度溢出解决方案
2012/12/02 Javascript
javascript date格式化示例
2013/09/25 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
python 递归相关知识总结
2021/03/03 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
异常和异常类的概念
2014/09/12 面试题
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
2015年小学体育工作总结
2015/05/22 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
Python爬虫基础初探selenium
2021/05/31 Python
数据库之SQL技巧整理案例
2021/07/07 SQL Server