浅析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 相关文章推荐
AJAX架构之Dojo篇
Apr 10 Javascript
JavaScript 空位补零实现代码
Feb 26 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
Jan 25 Javascript
js中通过父级进行查找定位元素
Jun 15 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
Jun 16 Javascript
jQuery实现左右切换焦点图
Apr 03 Javascript
jquery动感漂浮导航菜单代码分享
Apr 15 Javascript
jquery实现超简单的瀑布流布局【推荐】
Mar 08 Javascript
Vue项目webpack打包部署到服务器的实例详解
Jul 17 Javascript
浅谈Fetch 数据交互方式
Dec 20 Javascript
深入理解令牌认证机制(token)
Aug 22 Javascript
JS Canvas接口和动画效果大全
Apr 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
php的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
PHP中的Memcache详解
2014/04/05 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
javascript小数四舍五入多种方法实现
2012/12/23 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
静态页面html中跳转传值的JS处理技巧
2016/06/22 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
JS异步加载的三种实现方式
2017/03/16 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
pandas计数 value_counts()的使用
2019/06/24 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
Python中的Cookie模块如何使用
2020/06/04 Python
HTML5 visibilityState属性详细介绍和使用实例
2014/05/03 HTML / CSS
应届生保险求职信
2013/11/11 职场文书
公司离职证明范本
2014/01/13 职场文书
贷款委托书范本
2014/04/08 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
测绘工程专业求职信
2014/07/15 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
研究生导师推荐信
2015/03/25 职场文书
培训讲师开场白
2015/06/01 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
幼儿体育课教学反思
2016/02/16 职场文书