整理關于Bootstrap模態(tài)彈出框的慕課筆記
整理自慕課筆記
插件的源文件:modal.js。
在 Bootstrap 框架中把模態(tài)彈出框統(tǒng)一稱為 Modal。這種彈出框效果在大多數(shù) Web 網(wǎng)站的交互中都可見。比如點擊一個按鈕彈出一個框,彈出的框可能是一段文件描述,也可能帶有按鈕操作,也有可能彈出的是一張圖片。如下圖所示:
<body> <button class="btn btn-primary" type="button">點擊我</button> <div class="modal" id="mymodal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title">模態(tài)彈出窗標題</h4> </div> <div class="modal-body"> <p>模態(tài)彈出窗主體內容</p> </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 src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script src="http://cdn.bootcss.com/bootstrap/2.3.1/js/bootstrap-transition.js"></script> <script src="http://cdn.bootcss.com/bootstrap/2.3.1/js/bootstrap-modal.js"></script> <script> $(function(){ $(".btn").click(function(){ $("#mymodal").modal("toggle"); }); }); </script> </body>
結構分析
Bootstrap框架中的模態(tài)彈出框,分別運用了“modal”、“modal-dialog”和“modal-content”樣式,而彈出窗真正的內容都放置在“modal-content”中,其主要又包括三個部分:
1. 彈出框頭部,一般使用“modal-header”表示,主要包括標題和關閉按鈕
2. 彈出框主體,一般使用“modal-body”表示,彈出框的主要內容
3. 彈出框腳部,一般使用“modal-footer”表示,主要放置操作按鈕
<div class="modal show"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title">模態(tài)彈出窗標題</h4> </div> <div class="modal-body"> <p>模態(tài)彈出窗主體內容</p> </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 -->
實現(xiàn)原理
bootstrap中的“模態(tài)彈出框”有以下幾個特點:
1、模態(tài)彈出窗是固定在瀏覽器中的。
2、在全屏狀態(tài)下,模態(tài)彈出窗寬度是自適應的,而且modal-dialog水平居中。
3、當瀏覽器視窗大于768px時,模態(tài)彈出窗的寬度為600px。
兩種尺寸選擇
除此之外,Bootstrap框架還為模態(tài)彈出窗提供了不同尺寸,一個是大尺寸樣式“modal-lg”,另一個是小尺寸樣式“modal-sm”。其結構上稍做調整:
<divclass="modal-dialog modal-lg">
觸發(fā)方法
眾所周知,模態(tài)彈出窗在頁面加載完成時,是被隱藏在頁面中的,只有通過一定的動作(事件)才能觸發(fā)模態(tài)彈出窗的顯示。在Bootstrap框架中實現(xiàn)方法有2種,接下來分別來介紹這2種觸發(fā)模態(tài)彈出窗的使用方法。
聲明式觸發(fā)方法
方法一
模態(tài)彈出窗聲明,只需要自定義兩個必要的屬性:data-toggle和data-target(bootstrap中聲明式觸發(fā)方法一般依賴于這些自定義的data-xxx 屬性。比如data-toggle=”” 或者 data-dismiss=”“)。例如:
<!-- 觸發(fā)模態(tài)彈出窗的元素 --> <button type="button" data-toggle="modal" data-target="#mymodal" class="btn btn-primary">點擊我會彈出模態(tài)彈出窗</button> <!-- 模態(tài)彈出窗 --> <div class="modal fade" id="mymodal"> <div class="modal-dialog"> <div class="modal-content"> <!-- 模態(tài)彈出窗內容 --> </div> </div> </div>
注意以下事項:
1、data-toggle必須設置為modal(toggle中文翻譯過來就是觸發(fā)器);
2、data-target可以設置為CSS的選擇符,也可以設置為模態(tài)彈出窗的ID值,一般情況設置為模態(tài)彈出窗的ID值,因為ID值是唯一的值。
方法二
觸發(fā)模態(tài)彈出窗也可以是一個鏈接元素,那么可以使用鏈接元素自帶的href屬性替代data-target屬性,如:
<!-- 觸發(fā)模態(tài)彈出窗的元素 --> <a data-toggle="modal" href="#mymodal" rel="external nofollow" class=" btn btn-primary" >點擊我會彈出模態(tài)彈出窗</a> <!-- 模態(tài)彈出窗 --> <div class="modal fade" id="mymodal" > <div class="modal-dialog" > <div class="modal-content" > <!-- 模態(tài)彈出窗內容 --> </div> </div> </div>
不過建議還是使用統(tǒng)一使用data-target的方式來觸發(fā)。
增加過度動畫
為模態(tài)彈出框增加過度動畫效果:
可通過給“.modal”增加類名“fade”為模態(tài)彈出框增加一個過渡動畫效果。
<button class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-sm"> 小的模態(tài)彈出窗 </button><div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title">模態(tài)彈出窗標題</h4> </div> <div class="modal-body"> <p>模態(tài)彈出窗主體內容</p> </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> </div> </div>
模態(tài)彈出窗的使用(data-參數(shù)說明)
除了通過data-toggle和data-target來控制模態(tài)彈出窗之外,Bootstrap框架針對模態(tài)彈出框還提供了其他自定義data-屬性,來控制模態(tài)彈出窗。比如說:是否有灰色背景modal-backdrop,是否可以按ESC鍵關閉模態(tài)彈出窗。有關于Modal彈出窗自定義屬性相關說明如下所示:
使用(JavaScript觸發(fā))
除了使用自定義屬性觸發(fā)模態(tài)彈出框之外,還可以通過JavaScript方法來觸發(fā)模態(tài)彈出窗。通過給一個元素一個事件,來觸發(fā)。比如說給一個按鈕一個單擊事件,然后觸發(fā)模態(tài)彈出窗。如下面的一個簡單示例:
<!-- 觸發(fā)模態(tài)彈出窗元素 --> <button class="btn btn-primary" type="button">點擊我</button> <!-- 模態(tài)彈出窗內容 --> <div class="modal" id="mymodal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title">模態(tài)彈出窗標題</h4> </div> <div class="modal-body"> <p>模態(tài)彈出窗主體內容</p> </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 -->
JavaScript觸發(fā)的彈出窗代碼:
$(function(){ $(".btn").click(function(){ $("#mymodal").modal(); }); });
設置參數(shù)
使用JavaScript觸發(fā)模態(tài)彈出窗時,Bootstrap框架提供了一些設置,主要包括屬性設置、參數(shù)設置和事件設置。
屬性設置
模態(tài)彈出窗默認支持的自定義屬性主要有:
比如你不想讓用戶按ESC鍵關閉模態(tài)彈出窗,你就可以這樣做:
$(function(){ $(".btn").click(function(){ $("#mymodal").modal({ keyboard:false }); }); });
參數(shù)設置
在Bootstrap框架中還為模態(tài)彈出窗提供了三種參數(shù)設置,具體說明如下:
事件設置
模態(tài)彈出窗還支持四種類型的事件,分別是模態(tài)彈出窗的彈出前、彈出后,關閉前、關閉后,具體描述如下:
調用方法也非常簡單:
$('#myModal').on('hidden.bs.modal', function (e) { // 處理代碼... })
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- 如何使用Bootstrap的modal組件自定義alert,confirm和modal對話框
- Bootstrap每天必學之模態(tài)框(Modal)插件
- Bootstrap模態(tài)框(modal)垂直居中的實例代碼
- Bootstrap彈出框(modal)垂直居中的問題及解決方案詳解
- Bootstrap Modal遮罩彈出層(完整版)
- 解決bootstrap中modal遇到Esc鍵無法關閉頁面
- Bootstrap Modal對話框如何在關閉時觸發(fā)事件
- BootStrap modal模態(tài)彈窗使用小結
- 淺析BootStrap中Modal(模態(tài)框)使用心得
- Bootstrap modal使用及點擊外部不消失的解決方法
相關文章
使用plupload自定義參數(shù)實現(xiàn)多文件上傳
這篇文章主要介紹了使用plupload自定義參數(shù)實現(xiàn)多文件上傳的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07父頁面iframe中的第三方子頁面跨域交互技術—postMessage實現(xiàn)方法
web網(wǎng)站通過iframe嵌入第三方web頁面,父頁面和子頁面如果需要數(shù)據(jù)交互,顯然違反了同源策略,在HTML5標準引入的window對象下的postMessage方法,可以允許來自不同源的JavaScript腳本采用異步方式進行有限的通信,可以實現(xiàn)跨文本檔、多窗口、跨域消息傳遞...2023-06-06layui form.render(''select'', ''test2'') 更新渲染的方法
今天小編就為大家分享一篇layui form.render('select', 'test2') 更新渲染的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09Electron點擊穿透不規(guī)則窗體的透明區(qū)域的實現(xiàn)
本文主要介紹了Electron點擊穿透不規(guī)則窗體的透明區(qū)域的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09