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 相关文章推荐
javascript 学习笔记(onchange等)
Nov 14 Javascript
Firefox和IE兼容性问题及解决方法总结
Oct 08 Javascript
Javascript URI 解析介绍
Mar 15 Javascript
js实现汉字排序的方法
Jul 23 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
Jul 31 Javascript
基于BootStrap的图片轮播效果展示实例代码
May 23 Javascript
jQuery获取单击节点对象的方法
Jun 02 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
Feb 23 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
Sep 03 Javascript
Vue源码探究之虚拟节点的实现
Apr 17 Javascript
如何使用gpu.js改善JavaScript的性能
Dec 01 Javascript
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
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
PHP自动更新新闻DIY
2006/10/09 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
PHP crc32()函数讲解
2019/02/14 PHP
Javascript学习笔记1 数据类型
2010/01/11 Javascript
jquery实现通用版鼠标经过淡入淡出效果
2014/06/15 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
原生JS轮播图插件
2017/02/09 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
解决vue 更改计算属性后select选中值不更改的问题
2018/03/02 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
python中threading超线程用法实例分析
2015/05/16 Python
django-allauth入门学习和使用详解
2019/07/03 Python
python中dict使用方法详解
2019/07/17 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
次世代生活态度:Hypebeast
2018/07/05 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
高中家长寄语
2014/04/02 职场文书
小学语文教研活动总结
2014/07/01 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
邀请书模板
2015/02/02 职场文书
培养联系人考察意见
2015/06/01 职场文书
团委副书记工作总结
2015/08/14 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
Node与Python 双向通信的实现代码
2021/07/16 Javascript
MYSQL 运算符总结
2021/11/11 MySQL
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python