Bootstrap每天必学之模态框(Modal)插件


Posted in Javascript onApril 26, 2016

本节课我们主要学习一下 Bootstrap 中的模态框插件, 这是一款交互式网站非常常见的弹窗功能插件。

更多关于Bootstrap模态框插件内容请点击专题《Bootstrap Modal使用教程》进行学习,希望大家喜欢,下面继续

一.基本使用
使用模态框的弹窗组件需要三层 div 容器元素,分别为 modal(模态声明层)、
dialog(窗口声明层)、content(内容层)。在内容层里面,还有三层,分别为 header(头部)、body(主体)、footer(注脚)。
//基本实例

<!-- 模态声明,show 表示显示 -->
<div class="modal show" tabindex="-1">
 <!-- 窗口声明 -->
 <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">会员登录</h4>
 </div>
 <!-- 主体 -->
 <div class="modal-body">
 <p>
 暂时无法登录会员
 </p>
 </div>
 <!-- 注脚 -->
 <div class="modal-footer">
 <button type="button" class="btn btn-default">
 注册
 </button>
 <button type="button" class="btn btn-primary">
 登录
 </button>
 </div>
 </div>
 </div>
</div>

如果想让模态框自动隐藏,然后通过点击按钮弹窗,那么需要做如下操作。

//模态框去掉 show,增加一个 id

<div class="modal" id="myModal">
//点击触发模态框显示

<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
 点击弹窗
</button>
//弹窗的大小有三种,默认情况下是正常,还有 lg(大)和 sm(小)

<div class="modal-dialog modal-lg">
<div class="modal-dialog sm-lg">
//可设置淡入淡出效果

<div class="modal fade" id="myModal">
//在主体部分使用栅格系统中的流体


<!-- 主体 -->
<div class="modal-body">
 <div class="container-fluid">
 <div class="row">
 <div class="col-md-4">
 1
 </div>
 <div class="col-md-4">
 1
 </div>
 <div class="col-md-4">
 1
 </div>
 </div>
 </div>
</div>

二.用法说明
基本使用介绍结束之后,我们就来看下插件的各种重要用法。所有的插件,都是基于JavaScript/jQuery 的。那么,就有四个要素:用法、参数、方法和事件。
1.用法
第一种:可以通过 data 属性

//data-toggle

data-toggle="modal" data-target="#myModal"

data-toggle 表示触发类型
data-target 表示触发的节点

如果不是使用<button>, 而是<a>, 其中 data-target 也可以使用 href="#myModal"

取代。当然,我们建议使用 data-target。除了 data-toggle 和 data-target 两个声明属性外,还有一些可以用选项。

2.参数
可以通过在 HTML 元素上设置 data-*的属性声明来控制效果。

Bootstrap每天必学之模态框(Modal)插件

//空白背景且点击不关闭

data-backdrop="false"
//按下 esc 不关闭

data-keyboard="false"
//初始化隐藏,如果是按钮点击触发,第一次点击则无法显示,第二次显示。

data-show="false"
//加载一次 index.html 到容器内

href="index.html"

当然,也可以在 JavaScript 直接设置。

Bootstrap每天必学之模态框(Modal)插件

//通过 jQuery 方式声明

$('#myModal').modal({
 show : true,
 backdrop : false,
 keyboard : false,
 remote : 'index.html',
});

3.方法
如果说,默认不显示弹窗,那么怎么才能通过点击前后弹窗呢?

Bootstrap每天必学之模态框(Modal)插件

//点击显示弹窗

$('#btn').on('click', function() {
 $('#myModal').modal('show');
});

4.事件
模态框支持 4 种时间,分别对应弹出前、弹出后、关闭前和关闭后。

Bootstrap每天必学之模态框(Modal)插件

$('#myModal').on('show.bs.modal', function() {
 alert('在 show 方法调用时立即触发!');
});

$('#myModal').on('shown.bs.modal', function() {
 alert('在模态框显示完毕后触发!');
});

$('#myModal').on('hide.bs.modal', function() {
 alert('在 hide 方法调用时立即触发!');
});

$('#myModal').on('hiden.bs.modal', function() {
 alert('在模态框显示完毕后触发!');
});

$('#myModal').on('loaded.bs.modal', function() {
 alert('远程数据加载完毕后触发!');
});

本文系列教程整理到:Bootstrap基础教程 专题中,欢迎点击学习。

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

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
Google的跟踪代码 动态加载js代码方法应用
Nov 12 Javascript
jquery中的事件处理详细介绍
Jun 24 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
Jan 26 Javascript
JavaScript获取当前cpu使用率的方法
Dec 15 Javascript
学习vue.js表单控件绑定操作
Dec 05 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
Jan 09 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
Jan 17 Javascript
Vue.js父与子组件之间传参示例
Feb 28 Javascript
js用类封装pop弹窗组件
Oct 08 Javascript
Angular2进阶之如何避免Dom误区
Apr 02 Javascript
Angularjs实现多图片上传预览功能
Jul 18 Javascript
Centos7 安装Node.js10以上版本的方法步骤
Oct 15 Javascript
深入理解JS中的substr和substring
Apr 26 #Javascript
js获取页面及个元素高度、宽度的代码
Apr 26 #Javascript
jQuery javascript获得网页的高度与宽度的实现代码
Apr 26 #Javascript
JQuery给select添加/删除节点的实现代码
Apr 26 #Javascript
js计算时间差代码【包括计算,天,时,分,秒】
Apr 26 #Javascript
js 求时间差的实现代码
Apr 26 #Javascript
Bootstrap表单组件教程详解
Apr 26 #Javascript
You might like
php实现在多维数组中查找特定value的方法
2015/07/29 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
JavaScript获取当前cpu使用率的方法
2015/12/15 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
js中getter和setter用法实例分析
2018/08/14 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
2019/04/02 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
js前端对于大量数据的展示方式及处理方法
2020/12/02 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
python 中的list和array的不同之处及转换问题
2018/03/13 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
django ManyToManyField多对多关系的实例详解
2019/08/09 Python
python hashlib加密实现代码
2019/10/17 Python
python 实现目录复制的三种小结
2019/12/04 Python
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
SmartBuyGlasses英国:购买太阳镜和眼镜
2018/01/29 全球购物
课改先进个人汇报材料
2014/01/26 职场文书
央视元宵晚会主持串词
2014/03/25 职场文书
树转促学习心得体会
2014/09/10 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
2015年纪委工作总结
2015/05/13 职场文书
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js