浅析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 相关文章推荐
Javascript技术技巧大全(五)
Jan 22 Javascript
Array的push与unshift方法性能比较分析
Mar 05 Javascript
js验证整数加保留小数点的简单实例
Dec 02 Javascript
使用纯javascript实现经典扫雷游戏
Apr 23 Javascript
javascript日期计算实例分析
Jun 29 Javascript
整理Javascript流程控制语句学习笔记
Nov 29 Javascript
老生常谈onBlur事件与onfocus事件(js)
Jul 09 Javascript
bootstrap suggest搜索建议插件使用详解
Mar 25 Javascript
整理关于Bootstrap表单的慕课笔记
Mar 29 Javascript
JS非空验证及邮箱验证的实例
Aug 11 Javascript
使用JavaScript实现node.js中的path.join方法
Aug 12 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
Jul 30 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 empty函数 使用说明
2009/08/10 PHP
Linux下将excel数据导入到mssql数据库中的方法
2010/02/08 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
JS实现的A*寻路算法详解
2018/12/14 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
在Python中使用第三方模块的教程
2015/04/27 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
python面试题小结附答案实例代码
2019/04/11 Python
python脚本开机自启的实现方法
2019/06/28 Python
python中树与树的表示知识点总结
2019/09/14 Python
python tkinter控件布局项目实例
2019/11/04 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
使用pygame写一个古诗词填空通关游戏
2019/12/03 Python
如何实现更换Jupyter Notebook内核Python版本
2020/05/18 Python
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
保洁主管岗位职责
2013/11/20 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
施工员岗位职责
2014/03/16 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
教师读书笔记
2015/06/29 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书
在 Python 中利用 Pool 进行多线程
2022/04/24 Python
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers