bootstrap中的模态框(modal,弹出层)

bootstrap中的模态框(modal),不一样于Tooltips,模态框以弹出对话框的形式出现,具备最小和最实用的功能集。javascript

务必将模态框的 HTML 代码放在文档的最高层级内(也就是说,尽可能做为 body 标签的直接子元素),以免其余组件影响模态框的展示或功能。css

默认的modal示例:html

[html]  view plain  copy
 
  1. <!DOCTYPE html>  
  2. <html lang="zh-CN">  
  3. <head>  
  4.     <meta charset="utf-8">  
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">  
  6.     <meta name="viewport" content="width=device-width, initial-scale=1">  
  7.     <title>Bootstrap Modal</title>  
  8.     <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">  
  9. </head>  
  10. <body>  
  11. <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">  
  12.     Launch demo modal  
  13. </button>  
  14.   
  15. <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">  
  16.     <div class="modal-dialog" role="document">  
  17.         <div class="modal-content">  
  18.             <div class="modal-header">  
  19.                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">  
  20.                     <span aria-hidden="true"</span>  
  21.                 </button>  
  22.                 <h4 class="modal-title" id="myModalLabel">Modal title</h4>  
  23.             </div>  
  24.             <div class="modal-body">  
  25.                 <p>One fine body…</p>  
  26.             </div>  
  27.             <div class="modal-footer">  
  28.                 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>  
  29.                 <button type="button" class="btn btn-primary">Save</button>  
  30.             </div>  
  31.         </div>  
  32.     </div>  
  33. </div>  
  34.   
  35. <script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>  
  36. <script src="http://cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>  
  37. </body>  
  38. </html>  
  1. 为 .modal 添加 role="dialog",用于指定模态框为对话框。
  2. 为 .modal-dialog 添加 aria-hidden="true" 属性。
  3. 经过 aria-describedby 属性为模态框 .modal 添加描述性信息。

关闭动画java

若是你不须要模态框弹出时的动画效果(淡入淡出效果),删掉 .fade 类便可。jquery


经过按钮属性显示不一样内容
当有一堆按钮,都要触发相同的模态框(如:向好友列表中某我的发消息),只是有用户ID不一样,那么可使用data-whatever配合event.relatedtarget来实现:ajax

[html]  view plain  copy
 
  1. <!DOCTYPE html>  
  2. <html lang="zh-CN">  
  3. <head>  
  4.     <meta charset="utf-8">  
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">  
  6.     <meta name="viewport" content="width=device-width, initial-scale=1">  
  7.     <title>Bootstrap Modal</title>  
  8.     <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">  
  9. </head>  
  10. <body>  
  11.   
  12.   
  13. <div class="panel panel-default">  
  14.     <div class="panel-heading">好友列表</div>  
  15.     <div class="panel-body">  
  16.         <div class="list-group" role="group" aria-label="好友列表">  
  17.             <button type="button" class="list-group-item" data-toggle="modal" data-target="#exampleModal"  
  18.                     data-whatever="张三">张三  
  19.             </button>  
  20.             <button type="button" class="list-group-item" data-toggle="modal" data-target="#exampleModal"  
  21.                     data-whatever="李四">李四  
  22.             </button>  
  23.             <button type="button" class="list-group-item" data-toggle="modal" data-target="#exampleModal"  
  24.                     data-whatever="王二">王二  
  25.             </button>  
  26.         </div>  
  27.     </div>  
  28. </div>  
  29.   
  30. <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">  
  31.     <div class="modal-dialog" role="document">  
  32.         <div class="modal-content">  
  33.             <div class="modal-header">  
  34.                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span  
  35.                         aria-hidden="true"</span></button>  
  36.                 <h4 class="modal-title" id="exampleModalLabel">New message</h4>  
  37.             </div>  
  38.             <div class="modal-body">  
  39.                 <form>  
  40.                     <div class="form-group">  
  41.                         <label for="recipient-name" class="control-label">Recipient:</label>  
  42.                         <input type="text" class="form-control" id="recipient-name">  
  43.                     </div>  
  44.                     <div class="form-group">  
  45.                         <label for="message-text" class="control-label">Message:</label>  
  46.                         <textarea class="form-control" id="message-text"></textarea>  
  47.                     </div>  
  48.                 </form>  
  49.             </div>  
  50.             <div class="modal-footer">  
  51.                 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>  
  52.                 <button type="button" class="btn btn-primary">Send message</button>  
  53.             </div>  
  54.         </div>  
  55.     </div>  
  56. </div>  
  57. <script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>  
  58. <script src="http://cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>  
  59. <script>  
  60.     $('#exampleModal').on('show.bs.modal', function (event) {  
  61.         var button = $(event.relatedTarget) // 触发事件的按钮  
  62.         var recipient = button.data('whatever') // 解析出data-whatever内容  
  63.         var modal = $(this)  
  64.         modal.find('.modal-title').text('Message To ' + recipient)  
  65.         modal.find('.modal-body input').val(recipient)  
  66.     })  
  67. </script>  
  68. </body>  
  69. </html>  

 

一般不需写 JavaScript 代码也可激活模态框。经过在一个起控制器做用的元素(例如:按钮)上添加 data-toggle="modal" 属性,或者 data-target="#foo" 属性,再或者 href="#foo" 属性,用于指向被控制的模态框。

bootstrap

经过JavaScript调用modalide

一般只需一行 javascript 代码,便可经过元素的 id myModal 调用模态框:函数

 

[html]  view plain  copy
 
  1. $('#myModal').modal(options)  

 

JavaScript参数动画

能够将选项经过 data 属性或 JavaScript 代码传递。对于 data 属性,须要将参数名称放到 data- 以后,例如 data-backdrop=""。

 

名称 类型 默认值 描述
backdrop boolean或'static' true 默认状况下,点击其它位置,模态框自动关闭,你能够设置此属性为false或者"static"防止模态框自动关闭
keyboard boolean true 键盘上的 esc 键被按下时关闭模态框。
show path true 模态框初始化以后就当即显示出来。
remote path false 这个参数在v4里会去掉(能够本身写ajax请求来实现)若是提供的是 URL,将利用 jQuery 的 load 方法今后 URL 地址加载要展现的内容(只加载一次)并插入 .modal-content 内。若是使用的是 data 属性 API,还能够利用 href 属性指定内容来源地址。下面是一个实例:
<a data-toggle="modal" href="remote.html" data-target="#modal">Click me</a>

 

    

调用示例
1.将页面中的某块内容做为模态框激活。接受可选参数 object。

[html]  view plain  copy
 
  1. $('#myModal').modal({  
  2.   keyboard: false  
  3. })  


2.手动打开或关闭模态框。在模态框显示或隐藏以前返回到主调函数中(也就是,在触发 shown.bs.modal 或 hidden.bs.modal 事件以前)。

[html]  view plain  copy
 
  1. $('#myModal').modal('toggle')  


3.手动打开模态框。在模态框显示以前返回到主调函数中 (也就是,在触发 shown.bs.modal 事件以前)。

[html]  view plain  copy
 
  1. $('#myModal').modal('show')  


4.手动隐藏模态框。在模态框隐藏以前返回到主调函数中 (也就是,在触发 hidden.bs.modal 事件以前)。

[html]  view plain  copy
 
  1. $('#myModal').modal('hide')  


5.更新模态框,在模态框动态添加或删除内容时:

[html]  view plain  copy
 
  1. $('#myModal').modal('handleUpdate')  


绑定事件
Bootstrap 的模态框类提供了一些事件用于监听并执行你本身的代码。

事件类型 描述
show.bs.modal show 方法调用以后当即触发该事件。若是是经过点击某个做为触发器的元素,则此元素能够经过事件的 relatedTarget 属性进行访问。
shown.bs.modal 此事件在模态框已经显示出来(而且同时在 CSS 过渡效果完成)以后被触发。若是是经过点击某个做为触发器的元素,则此元素能够经过事件的 relatedTarget 属性进行访问。
hide.bs.modal hide 方法调用以后当即触发该事件。
hidden.bs.modal 此事件在模态框被隐藏(而且同时在 CSS 过渡效果完成)以后被触发。
loaded.bs.modal 从远端的数据源加载完数据以后触发该事件。

如:

[html]  view plain  copy
 
    1. $('#myModal').on('hidden.bs.modal', function (e) {  
    2.   // do something...  
    3. })  
相关文章
相关标签/搜索