浅析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 相关文章推荐
jquery 常用操作整理 基础入门篇
Oct 14 Javascript
document.forms用法示例介绍
Jun 26 Javascript
详解jQuery Mobile自定义标签
Jan 06 Javascript
封装获取dom元素的简单实例
Jul 08 Javascript
微信小程序自定义组件实现tabs选项卡功能
Jul 14 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
Nov 09 Javascript
JS定义函数的几种常用方法小结
May 23 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
JointJS JavaScript流程图绘制框架解析
Aug 15 Javascript
VUE注册全局组件和局部组件过程解析
Oct 10 Javascript
Vue实现星级评价效果实例详解
Dec 30 Javascript
vue+element实现图片上传及裁剪功能
Jun 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
老照片 - 几十年前的收音机与人
2021/03/02 无线电
PHP新手上路(七)
2006/10/09 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
php实现分页显示
2015/11/03 PHP
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
nodejs实现套接字服务功能详解
2018/06/21 NodeJs
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python导出DBF文件到Excel的方法
2015/07/25 Python
python机器学习理论与实战(六)支持向量机
2018/01/19 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
python selenium 弹出框处理的实现
2019/02/26 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
Python如何实现线程间通信
2020/07/30 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
受希腊女神灵感的晚礼服、鸡尾酒礼服和婚纱:THEIA
2018/04/15 全球购物
安全目标责任书
2014/07/22 职场文书
高中生第一学年自我鉴定2015
2014/09/28 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
幼儿教师个人总结
2015/02/05 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
酒店员工手册范本
2015/05/14 职场文书
个人收入证明范本
2015/06/12 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
Python如何配置环境变量详解
2021/05/18 Python