浅析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中获取iframe的代码
Jan 11 Javascript
JavaScript判断密码强度(自写代码)
Sep 06 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
Sep 01 Javascript
JS实现的页面自定义滚动条效果
Oct 26 Javascript
js实现select二级联动下拉菜单
Apr 17 Javascript
jQuery添加options点击事件并传值实例代码
May 18 Javascript
JS如何判断json是否为空
Jul 06 Javascript
js 监控iframe URL的变化实例代码
Jul 12 Javascript
VUE基于NUXT的SSR 服务端渲染
Nov 30 Javascript
vue实现文件上传读取及下载功能
Nov 17 Javascript
jquery ajax 请求小技巧实例分析
Nov 11 jQuery
js实现动态时钟
Mar 12 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中str_replace函数使用小结
2008/10/11 PHP
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
基于php解决json_encode中文UNICODE转码问题
2020/11/10 PHP
javascript数组去重方法终极总结
2014/06/05 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
小程序实现多列选择器
2019/02/15 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
Python列表list操作相关知识小结
2020/01/29 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
银行学习十八大感想
2014/01/11 职场文书
小学班主任事迹材料
2014/12/17 职场文书
商业计划书之服装
2019/09/09 职场文书
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL
关于MybatisPlus配置双数据库驱动连接数据库问题
2022/01/22 Java/Android
Python加密技术之RSA加密解密的实现
2022/04/08 Python