浅析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 相关文章推荐
extjs 学习笔记 四 带分页的grid
Oct 20 Javascript
javascript仿php的print_r函数输出json数据
Sep 13 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
Nov 10 Javascript
js控制input框只读实现示例
Jan 20 Javascript
JS图片无缝、平滑滚动代码
Mar 11 Javascript
JavaScript获取网页表单action属性的方法
Apr 02 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
Apr 06 Javascript
jquery任意位置浮动固定层插件用法实例
May 29 Javascript
javascript实现根据汉字获取简拼
Sep 25 Javascript
node中的session的具体使用
Sep 14 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
Jun 22 Javascript
详解Vue 项目中的几个实用组件(ts)
Oct 29 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
Ajax PHP简单入门教程代码
2008/04/25 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
浅析Prototype的模板类 Template
2011/12/07 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
利用Hyperic调用Python实现进程守护
2018/01/02 Python
Python 实现Windows开机运行某软件的方法
2018/10/14 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
Python  Django 母版和继承解析
2019/08/09 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
python计算n的阶乘的方法代码
2019/10/25 Python
Python实现图像的垂直投影示例
2020/01/17 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
销售行政专员职责
2014/01/03 职场文书
服务员自我评价
2014/01/25 职场文书
优秀教师事迹简介
2014/02/02 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android