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 相关文章推荐
javascript 清除输入框中的数据
Apr 13 Javascript
javascript offsetX与layerX区别
Mar 12 Javascript
JQuery.Ajax之错误调试帮助信息介绍
Jul 04 Javascript
基于javascript实现彩票随机数生成(升级版)
Apr 17 Javascript
下一代Bootstrap的5个特点 超酷炫!
Jun 17 Javascript
微信小程序 火车票查询实例讲解
Oct 17 Javascript
jquery.validate表单验证插件使用详解
Jun 21 jQuery
vue项目环境变量配置的实现方法
Oct 12 Javascript
微信小程序实现下拉框功能
Jul 16 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
Nov 06 Javascript
JavaScript函数Call、Apply原理实例解析
Feb 17 Javascript
解决vue刷新页面以后丢失store的数据问题
Aug 11 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生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
php微信公众平台开发类实例
2015/04/01 PHP
php使用Jpgraph绘制3D饼状图的方法
2015/06/10 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
Javascript 解疑
2009/11/11 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
提高jQuery性能优化的技巧
2015/08/03 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
python中open函数的基本用法示例
2019/09/07 Python
Django实现网页分页功能
2019/10/31 Python
详解Django配置JWT认证方式
2020/05/09 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
生产车间实习自我鉴定
2013/09/23 职场文书
个人对照检查材料思想汇报
2014/09/26 职场文书
小学老师对学生的评语
2014/12/29 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
一文弄懂MySQL索引创建原则
2022/02/28 MySQL