Bootstrap 模態框
Bootstrap 模態框(Modal)外掛程式
模態框(Modal)是覆蓋在父窗體上的子窗體。通常,目的是顯示來自單獨的來源的內容,可以在不離開父窗體的情況下有一些互動。子窗體可提供資訊、互動等。
如果您想要單獨引用該外掛程式的功能,那麼您需要引用 modal.js。或者,如 Bootstrap 外掛程式概覽 一章所提到,您可以引用 bootstrap.js 或壓縮版的 bootstrap.min.js。
用法
您可以切換模態框(Modal)外掛程式的隱藏內容:
透過data 屬性:在控制器元素(例如按鈕或連結)上設定屬性data-toggle="modal",同時設定data-target="#identifier" 或href="# identifier" 來指定要切換的特定的模態框(帶有id="identifier")。
透過JavaScript:使用此技術,您可以透過簡單的一行JavaScript 來呼叫帶有id="identifier" 的模態方塊:
$('#identifier').modal(options)
實例
一個靜態的模態視窗實例,如下面的實例所示:
實例
<!DOCTYPE html> <html> <head> <title>Bootstrap 实例 - 模态框(Modal)插件</title> <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css"> <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script> </head> <body> <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> </body> </html>
運行實例»
點擊"運行實例"按鈕查看線上實例
#結果如下所示:
程式碼講解:
使用模態窗口,您需要有某種觸發器。您可以使用按鈕或連結。這裡我們使用的是按鈕。
如果您仔細查看上面的程式碼,您會發現在<button> 標籤中,data-target="#myModal" 是您想要在頁面上載入的模態框的目標。您可以在頁面上建立多個模態框,然後為每個模態框建立不同的觸發器。現在,很明顯,您不能在同一時間加載多個模組,但您可以在頁面上創建多個在不同時間進行加載。
在模態方塊中需要注意兩點:
#第一是.modal,用來把<div> 的內容辨識為模態框。
第二是 .fade class。當模態框被切換時,它會造成內容淡入淡出。
aria-labelledby="myModalLabel",該屬性引用模態方塊的標題。
屬性aria-hidden="true" 用於保持模態視窗不可見,直到觸發器被觸發為止(例如點擊在相關的按鈕上) 。
<div class="modal-header">,modal-header 是為模態視窗的頭部定義樣式的類別。
class="close",close 是一個 CSS class,用來為模態視窗的關閉按鈕設定樣式。
data-dismiss="modal",是一個自訂的 HTML5 data 屬性。在這裡它被用來關閉模態視窗。
class="modal-body",是 Bootstrap CSS 的一個 CSS class,用來設定模態視窗的主體。
class="modal-footer",是 Bootstrap CSS 的一個 CSS class,用來設定模態視窗的底部樣式。
data-toggle="modal",HTML5 自訂的 data 屬性 data-toggle 用來開啟模態視窗。
選項
有一些選項可以用來自訂模態視窗(Modal Window)的外觀和感觀,它們是透過 data 屬性或 JavaScript 來傳遞的。下表列出了這些選項:
選項名稱 | 類型/預設值 | #Data 屬性名稱 | 描述 |
---|---|---|---|
backdrop | boolean 或string 'static' 預設值:true | data-backdrop | #指定一個靜態的背景,當使用者點選模態框外部時不會關閉模態框。 |
keyboard | boolean 預設值:true | data-keyboard | 當按下escape 鍵時關閉模態框,設定為false 時則按鍵無效。 |
show | boolean 預設值:true | data-show | #當初始化時顯示模態框。 |
remote | path 預設值:false | data-remote | 使用jQuery .load 方法,為模態框的主體注入內容。如果新增了一個帶有有效 URL 的 href,則會載入其中的內容。如下面的實例所示:<a data-toggle="modal" href="remote.html" data-target="#modal">请点击我</a> |
方法
以下是一些可與 modal() 一起使用的有用的方法。
方法 | 描述 | 實例 |
---|---|---|
##Options: .modal(options) | 把內容當作模態框啟動。接受一個可選的選項物件。||
Toggle: .modal('toggle') | 手動切換模態方塊。||
Show: .modal('show') | 手動開啟模態方塊。||
Hide: .modal('hide') | 手動隱藏模態方塊。
<!DOCTYPE html> <html> <head> <title>Bootstrap 实例 - 模态框(Modal)插件方法</title> <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css"> <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script> </head> <body> <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"> 按下 ESC 按钮退出。 </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-dialog --> </div><!-- /.modal --> <script> $(function () { $('#myModal').modal({ keyboard: true })}); </script> </body> </html>
運行實例»點擊"運行實例" 按鈕查看線上實例