浅析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 相关文章推荐
Tab页界面,用jQuery及Ajax技术实现
Sep 21 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
Aug 11 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
Sep 24 Javascript
JavaScript中获取纯正的undefined的方法
Mar 06 Javascript
分享19个JavaScript 有用的简写写法
Jul 07 Javascript
原生js实现拖拽功能基本思路详解
Apr 18 Javascript
vue和webpack打包项目相对路径修改的方法
Jun 15 Javascript
详解vue项目打包步骤
Mar 29 Javascript
详解ES6 export default 和 import语句中的解构赋值
May 28 Javascript
JavaScript Event Loop相关原理解析
Jun 10 Javascript
iview实现动态表单和自定义验证时间段重叠
Jan 10 Javascript
JavaScript代码实现微博批量取消关注功能
Feb 05 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
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
jQuery中:password选择器用法实例
2015/01/03 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
python实现斗地主分牌洗牌
2020/06/22 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
公司行政经理岗位职责
2013/12/24 职场文书
合作经营协议书范本
2014/04/17 职场文书
幼儿园六一儿童节活动方案
2014/08/26 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
艺术节开幕词
2015/01/28 职场文书
CAD实训总结范文
2015/08/03 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
Flask response响应的具体使用
2021/07/15 Python
APP界面设计技巧和注意事项
2022/04/29 杂记
MySQL分布式恢复进阶
2022/07/23 MySQL