Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗


Posted in Javascript onJune 30, 2016

使用弹窗在网页中显示短信息还行,虽然不那么地友好。然而,弹窗对于如同网站服务条款的长信息就无能为力的了。这是需要使用一个叫模态框modal的东西,并且在模态框里面嵌入一个多行文本框textarea。
这个东西,如果要手工写JavaScript代码就太难做了,但是使用Bootstrap来编写就简单起来。 

一、基本目标 

有一个网页,网页上面有一个超级链接,一个按钮: 

Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗

点击他们都会打开一个如下所示的模态框,这个模态框,点击右上角的X按钮与下方的确定都会关闭。 

Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗

二、制作过程 

1.因为需要使用Bootstrap,所以先在官网(点击打开链接)下载组件即可,用于生产环境的Bootstrap版本(点击打开链接),Bootstrap3对2并不兼容,建议直接根据其开发文档使用Bootstrap3。本文也是根据Bootstrap3制作。同时,Bootstrap3所提供的JavaScript效果需要到jQuery1.11(点击打开链接)支持,可以到jQuery官网中下载兼容旧浏览器IE6的jQuery1.11(点击打开链接),而不是不兼容旧浏览器IE6的jQuery2。下载完之后,配置好站点目录。把Bootstrap3直接解压到站点目录,而把jquery-1.11.1.js放到js目录,也就是与bootstrap.js同一目录,站点文件夹的结构大致如下: 

Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗

2.本网页编码如下,下面一个片段一个片段进行分析: 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>模态框</title>
 <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
 <link href="css/bootstrap.css" rel="stylesheet" media="screen">
 <script type="text/javascript" src="js/jquery-1.11.1.js"></script>
 <script type="text/javascript" src="js/bootstrap.js"></script>
 </head>

 <body>
 <p>
 <a data-toggle="modal" data-target="#myModal">服务协议</a>
 </p>
 <p>
 <button type="button" class="btn btn-danger" data-toggle="modal"
 data-target="#myModal">
 点击此阅读服务协议
 </button>
 </p>
 <div class="modal fade" id="myModal" role="dialog">
 <div class="modal-dialog">
 <div class="modal-content">
 <div class="modal-header">
 <button type="button" class="close" data-dismiss="modal">
 <span>×</span>
 </button>
 <h4 class="modal-title" id="myModalLabel">
 服务协议
 </h4>
 </div>
 <div class="modal-body">
 <p align="center">
 <textarea class="form-control" rows=3 readonly="true" />
 本协议服务条款具有法律效力。 
    本协议服务条款具有法律效力。 
    本协议服务条款具有法律效力。 
    本协议服务条款具有法律效力。
 </textarea>
 </p>
 </div>
 <div class="modal-footer">
 <p align="center">
 <button type="button" class="btn btn-default"
 data-dismiss="modal">
 确定
 </button>
 </p>
 </div>
 </div>
 </div>
 </div>

 </body>
</html>

(1)<head>部分

<head>
 <!--页面编码-->
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>模态框</title>
 <!--要求本网页自动适应PC、平板、手机等设备的屏幕-->
 <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
 <!--本例需要三个外部插件所支持-->
 <link href="css/bootstrap.css" rel="stylesheet" media="screen">
 <script type="text/javascript" src="js/jquery-1.11.1.js"></script>
 <script type="text/javascript" src="js/bootstrap.js"></script>
 </head>

(2)最初在网页所呈现的链接与按钮

<p>
  <!--data-toggle="modal" data-target="#myModal"要求打开的myModal的模态框-->
 <a data-toggle="modal" data-target="#myModal">服务协议</a>
 </p>
 <p>
  <!--class="btn btn-danger"是按钮在Bootstrap的样式。-->
 <button type="button" class="btn btn-danger" data-toggle="modal"
 data-target="#myModal">
 点击此阅读服务协议
 </button>
 </p>

(3)模态框部分

模态框的基本如下: 

Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗

因此也就有了如下代码:   

<!--class="modal fade"是要求模态框以动画效果fade打开,class="modal"也行,但打开得十分唐突。id="myModal"与上面的超级链接、按钮相呼应-->
 <div class="modal fade" id="myModal" role="dialog">
 <div class="modal-dialog">
  <!--必须在modal-content之后才能进行模态框的布局。-->
 <div class="modal-content">
 <div class="modal-header">
   <!--这是模态框的标题部分, ×加分号 为×的转移字符,实质是一个关闭按钮-->
 <button type="button" class="close" data-dismiss="modal">
 <span>×</span>
 </button>
   <!--这是模态框的标题-->
 <h4 class="modal-title" id="myModalLabel">
 服务协议
 </h4>
 </div>
 <div class="modal-body">
   <!--这是模态框的主体部分,内嵌一个行数为3的只读文本框,文本框在模态框主体部分居中,不用文本框也可以,但内容会一次性呈现给用户,那还不如直接弹窗算了?-->
 <p align="center">
 <textarea class="form-control" rows=3 readonly="true" />
 本协议服务条款具有法律效力。 
    本协议服务条款具有法律效力。 
    本协议服务条款具有法律效力。 
    本协议服务条款具有法律效力。
 </textarea>
 </p>
 </div>
 <div class="modal-footer">
   <!--这是模态框的尾部,就放一个居中的确定按钮-->
 <p align="center">
 <button type="button" class="btn btn-default"
 data-dismiss="modal">
 确定
 </button>
 </p>
 </div>
 </div>
 </div>
 </div>

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
学习ExtJS form布局
Oct 08 Javascript
js 面向对象的技术创建高级 Web 应用程序
Feb 25 Javascript
javascript权威指南 学习笔记之javascript数据类型
Sep 24 Javascript
利用JS来控制键盘的上下左右键(示例代码)
Dec 14 Javascript
js实现点击添加一个input节点
Dec 05 Javascript
Vue数据驱动模拟实现3
Jan 11 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
Jun 13 Javascript
慕课网题目之js实现抽奖系统功能
Sep 19 Javascript
用POSTMAN发送JSON格式的POST请求示例
Sep 04 Javascript
JS实现简易留言板(节点操作)
Mar 16 Javascript
vue+animation实现翻页动画
Jun 29 Javascript
jquery实现加载更多&quot;转圈圈&quot;效果(示例代码)
Nov 09 jQuery
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
Jun 30 #Javascript
jQuery获取table行数并输出单元格内容的实现方法
Jun 30 #Javascript
JS实现添加,替换,删除节点元素的方法
Jun 30 #Javascript
JS传值出现中文参数乱码的解决方法
Jun 30 #Javascript
javascirpt实现2个iframe之间传值的方法
Jun 30 #Javascript
老生常谈 js中this的指向
Jun 30 #Javascript
JS使用cookie设置样式的方法
Jun 30 #Javascript
You might like
PHP封装的字符串加密解密函数
2015/12/18 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
vue-froala-wysiwyg 富文本编辑器功能
2019/09/19 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
python 对给定可迭代集合统计出现频率,并排序的方法
2018/10/18 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
Linux面试题LINUX系统类
2015/11/25 面试题
企业活动策划方案
2014/06/02 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
Mysql 性能监控及调优
2021/04/06 MySQL
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS