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 相关文章推荐
JS实现关键字搜索时的相关下拉字段效果
Aug 05 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
Mar 03 Javascript
javascript实时显示当天日期的方法
May 20 Javascript
点击页面任何位置隐藏div的实现方法
Sep 05 Javascript
基于JavaScript实现数码时钟效果
Mar 30 Javascript
浅谈react.js中实现tab吸顶效果的问题
Sep 06 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
Jul 08 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
Aug 14 Javascript
Vue组件模板的几种书写形式(3种)
Feb 19 Javascript
jQuery实现回到顶部效果
Oct 19 jQuery
解决Antd 里面的select 选择框联动触发的问题
Oct 24 Javascript
Javascript之datagrid查询详解
Sep 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
DISCUZ 分页代码
2007/01/02 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
javascript中递归的两种写法
2017/01/17 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
JavaScript折半查找(二分查找)算法原理与实现方法示例
2018/08/06 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
[02:20]DOTA2英雄基础教程 黑暗贤者
2013/12/19 DOTA
Python中__new__与__init__方法的区别详解
2015/05/04 Python
简述Python2与Python3的不同点
2018/01/21 Python
python字典改变value值方法总结
2019/06/21 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
Java如何调用外部Exe程序
2015/07/04 面试题
yy婚礼司仪主持词
2014/03/14 职场文书
C++程序员求职信
2014/05/07 职场文书
学习保证书
2015/01/17 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
社会实践心得体会范文
2016/01/14 职场文书
python库sklearn常用操作
2021/08/23 Python