浅析BootStrap中Modal(模态框)使用心得


Posted in Javascript onDecember 24, 2016

BootStrap中Modal(模态框)描述

Bootstrap Modals(模态框)是使用定制的 Jquery 插件创建的。它可以用来创建模态窗口丰富用户体验,或者为用户添加实用功能。您可以在 Modals(模态框)中使用 Popover(弹出框)和 Tooltip(工具提示插件)。

一、modal使用:

1.1、登录bootstrap官网,点击下载Bootstrap

1.2、导入对应的样式文件css

1.3、导入对应的js,需要导入bootstrap.js或者bootstrap.min.js文件,bootstrap的前提是jQuery,所以我们要在导入bootstrap.js前面导入jquery.min.js

对应导入代码:

<!--导入样式-->
<link href="Bootstrap/css/bootstrap-theme.css" rel="stylesheet"/>
<link href="Bootstrap/css/bootstrap-theme.min.css" rel="stylesheet" />
<link href="Bootstrap/css/bootstrap.css" rel="stylesheet"/>
<link href="Bootstrap/css/bootstrap.min.css" rel="stylesheet"/>
<!--导入bootstrap.js包-->
<script src="jquery/jquery-3.1.1.min.js"></script>
<script src="Bootstrap/js/bootstrap.min.js"></script>

1.4、从官网找到一个案例使用:

<h2>创建模态框(Modal)</h2>
<!-- 按钮触发模态框 -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">开始演示模态框</button>
<!-- 模态框(Modal) -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h4 class="modal-title" id="myModalLabel">模态框(Modal)标题</h4>
      </div>
      <div class="modal-body">在这里添加一些文本</div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
        <button type="button" class="btn btn-primary">提交更改</button>
      </div>
    </div><!-- /.modal-content -->
  </div><!-- /.modal -->
</div>

二、modal打开:

2.1、静态打开:通过data属性打开隐藏模态框

设置按钮button的data-toggle:"modal"(以模态框的形式打开),data-target:"#myModal"(设置为modal的id)

2.2、动态打开:以jquery代码为例

$("#myModal").modal({
remote:"test/test.jsp";//可以填写一个url,会调用jquery load方法加载数据
backdrop:"static";//指定一个静态背景,当用户点击背景处,modal界面不会消失
keyboard:true;//当按下esc键时,modal框消失
})

remote处可以填写jsp路径或者html路径,用来给modal框注入内容

2.3、动态打开事件:

在modal框加载同时,提供几个方法用来控制modal框

$("#myModal").on("loaded.bs.modal",function{
//在模态框加载的同时做一些动作
});
$("#myModal").on("show.bs.modal",function{
//在show方法后调用
});
$("#myModal").on("shown.bs.modal",function{
//在模态框完全展示出来做一些动作
});
$("#myModal").on("hide.bs.modal",function{
//hide方法后调用
});
$("#myModal").on("hiden.bs.modal",function{
//监听模态框隐藏事件做一些动作
});

2.4、解决remote只加载一次问题:

我们在使用js动态打开modal框使用remote请求数据,只会加载一次数据,所以我们需要在每次打开modal框钱移除节点数据。

解决方案:

$("#myModal").on("hiden.bs.modal",function{
$(this).removeData("bs.modal");
});

2.5、解决事件监听多次:

第一次打开modal框正常,第二次,第三次,第n次打开就有可能会出现事件监听多次的奇怪问题(尤其是多个modal窗口叠加,出现这种问题的几率更高,我大致判断有可能是组件bug),所以无奈之举的办法,只适合应急使用:就是强行让他只调用监听一次

int count = 0 ;
$("#myModal").on("loaded.bs.modal",function{
if(++count == 1){
//调用你需要的方法
}
//在模态框加载的同时做一些动作
});

总结:modal框是个很好用的组件,不过官方文档提醒最好不要多个modal叠加很容易出现很难解决的前端组件问题。

以上所述是小编给大家介绍的浅析BootStrap中Modal(模态框)使用心得,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript中的数学函数
Apr 04 Javascript
跟着JQuery API学Jquery 之二 属性
Apr 09 Javascript
js二维数组排序的简单示例代码
Jan 24 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
Jul 04 Javascript
JQuery表单验证插件EasyValidator用法分析
Nov 15 Javascript
JavaScript 对象字面量讲解
Jun 06 Javascript
Javascript 对cookie操作详解及实例
Dec 29 Javascript
Node.js连接mongodb实例代码
Jun 06 Javascript
Express + Node.js实现登录拦截器的实例代码
Jul 01 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
Jul 02 Javascript
vue简单练习 桌面时钟的实现代码实例
Sep 19 Javascript
Vue表单提交点击事件只允许点击一次的实例
Oct 23 Javascript
纯JS实现表单验证实例
Dec 24 #Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
Dec 24 #Javascript
JS绘制微信小程序画布时钟
Dec 24 #Javascript
jQuery弹出窗口打开链接的实现代码
Dec 24 #Javascript
DropDownList控件绑定数据源的三种方法
Dec 24 #Javascript
Bootstrap源码学习笔记之bootstrap进度条
Dec 24 #Javascript
js addDqmForPP给标签内属性值加上双引号的函数
Dec 24 #Javascript
You might like
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
深入浅出php socket编程
2015/05/13 PHP
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
2017/09/13 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
盘点提高 Python 代码效率的方法
2014/07/03 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
python pandas库的安装和创建
2019/01/10 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
python通过文本在一个图中画多条线的实例
2020/02/21 Python
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
厨房领班竞聘演讲稿
2014/04/23 职场文书
大学生应聘导游自荐信
2014/06/02 职场文书
美术社团活动总结
2014/06/27 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
2014年科研工作总结
2014/12/03 职场文书
现役军人家属慰问信
2015/03/24 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书
MySQL 原理与优化之Update 优化
2022/08/14 MySQL