浅析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 相关文章推荐
Sample script that deletes a SQL Server database
Jun 16 Javascript
Google 静态地图API实现代码
Nov 19 Javascript
Javascript编写俄罗斯方块思路及实例
Jul 07 Javascript
JavaScript图像延迟加载库Echo.js
Apr 05 Javascript
JavaScript 过滤关键字
Mar 20 Javascript
Angular获取手机验证码实现移动端登录注册功能
May 17 Javascript
jQuery实现动态添加节点与遍历节点功能示例
Nov 09 jQuery
10 种最常见的 Javascript 错误(频率最高)
Feb 08 Javascript
swiper 解决动态加载数据滑动失效的问题
Feb 26 Javascript
webpack+vue+express(hot)热启动调试简单配置方法
Sep 19 Javascript
微信小程序开发常见问题及解决方案
Jul 11 Javascript
原生JavaScript实现购物车
Jan 10 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简洁函数小结
2011/08/12 PHP
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
js实现盒子拖拽动画效果
2020/08/09 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
Python hmac模块使用实例解析
2019/12/24 Python
Python进程的通信Queue、Pipe实例分析
2020/03/30 Python
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
土木工程专业自荐信
2013/10/04 职场文书
函授毕业生的自我鉴定
2013/11/26 职场文书
人力资源作业细则
2014/03/03 职场文书
小学生个人先进事迹材料
2014/05/08 职场文书
2015年依法行政工作总结
2015/04/29 职场文书
2016新年感言
2015/08/03 职场文书
Redis性能监控的实现
2021/07/09 Redis
详解jQuery的核心函数和事件处理
2022/02/18 jQuery