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 相关文章推荐
jQuery 创建Dom元素
May 07 Javascript
JQuery与JSon实现的无刷新分页代码
Sep 13 Javascript
Javascript 面向对象(二)封装代码
May 23 Javascript
js中Math之random,round,ceil,floor的用法总结
Dec 26 Javascript
JavaScript中的无阻塞加载性能优化方案
Oct 10 Javascript
JQuery异步获取返回值中文乱码的解决方法
Jan 29 Javascript
基于Javascript实现返回顶部按钮
Feb 29 Javascript
分享10个优化代码的CSS和JavaScript工具
May 11 Javascript
javascript 数组的正态分布排序的问题
Jul 31 Javascript
通过示例彻底搞懂js闭包
Aug 10 Javascript
JS/CSS实现字符串单词首字母大写功能
Sep 03 Javascript
使用jQuery实现掷骰子游戏
Oct 24 jQuery
深入理解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写入WRITE编码为UTF8的文件的实现代码
2008/07/07 PHP
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
一个tab标签切换效果代码
2009/03/27 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
2016/07/22 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
Vue项目分环境打包的实现步骤
2018/04/02 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Django的session中对于用户验证的支持
2015/07/23 Python
Python if语句知识点用法总结
2018/06/10 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
一道SQL面试题
2012/12/31 面试题
C#怎么让一个窗口居中显示?
2015/10/20 面试题
医学院学生的自我评价分享
2013/11/19 职场文书
会计出纳岗位职责
2013/12/25 职场文书
九年级化学教学反思
2014/01/28 职场文书
国培远程培训感言
2014/03/08 职场文书
2014年大学庆元旦迎新年活动方案
2014/03/09 职场文书
保护环境倡议书
2014/04/14 职场文书
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis