DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript技巧 >> 整理關於Bootstrap模態彈出框的慕課筆記
整理關於Bootstrap模態彈出框的慕課筆記
編輯:JavaScript技巧     

整理自慕課筆記

插件的源文件:modal.js。

在 Bootstrap 框架中把模態彈出框統一稱為 Modal。這種彈出框效果在大多數 Web 網站的交互中都可見。比如點擊一個按鈕彈出一個框,彈出的框可能是一段文件描述,也可能帶有按鈕操作,也有可能彈出的是一張圖片。如下圖所示:

<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">模態彈出窗標題</h4>
   </div>
   <div class="modal-body">
    <p>模態彈出窗主體內容</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框架中的模態彈出框,分別運用了“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">模態彈出窗標題</h4>
   </div>
   <div class="modal-body">
    <p>模態彈出窗主體內容</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 -->

實現原理

bootstrap中的“模態彈出框”有以下幾個特點:
1、模態彈出窗是固定在浏覽器中的。
2、在全屏狀態下,模態彈出窗寬度是自適應的,而且modal-dialog水平居中。
3、當浏覽器視窗大於768px時,模態彈出窗的寬度為600px。

兩種尺寸選擇

除此之外,Bootstrap框架還為模態彈出窗提供了不同尺寸,一個是大尺寸樣式“modal-lg”,另一個是小尺寸樣式“modal-sm”。其結構上稍做調整:

<divclass="modal-dialog modal-lg">

觸發方法

眾所周知,模態彈出窗在頁面加載完成時,是被隱藏在頁面中的,只有通過一定的動作(事件)才能觸發模態彈出窗的顯示。在Bootstrap框架中實現方法有2種,接下來分別來介紹這2種觸發模態彈出窗的使用方法。

聲明式觸發方法

方法一

模態彈出窗聲明,只需要自定義兩個必要的屬性:data-toggle和data-target(bootstrap中聲明式觸發方法一般依賴於這些自定義的data-xxx 屬性。比如data-toggle=”” 或者 data-dismiss=”“)。例如:

<!-- 觸發模態彈出窗的元素 -->
<button type="button" data-toggle="modal" data-target="#mymodal" class="btn btn-primary">點擊我會彈出模態彈出窗</button>
<!-- 模態彈出窗 -->
<div class="modal fade" id="mymodal">
 <div class="modal-dialog">
  <div class="modal-content">
  <!-- 模態彈出窗內容 -->
  </div>
 </div>
</div>

注意以下事項:
1、data-toggle必須設置為modal(toggle中文翻譯過來就是觸發器);
2、data-target可以設置為CSS的選擇符,也可以設置為模態彈出窗的ID值,一般情況設置為模態彈出窗的ID值,因為ID值是唯一的值。

方法二

觸發模態彈出窗也可以是一個鏈接元素,那麼可以使用鏈接元素自帶的href屬性替代data-target屬性,如:

<!-- 觸發模態彈出窗的元素 -->
<a data-toggle="modal" href="#mymodal" rel="external nofollow" class=" btn btn-primary" >點擊我會彈出模態彈出窗</a>
<!-- 模態彈出窗 -->
<div class="modal fade" id="mymodal" >
 <div class="modal-dialog" >
  <div class="modal-content" >
  <!-- 模態彈出窗內容 -->
  </div>
 </div>
</div>

不過建議還是使用統一使用data-target的方式來觸發。

增加過度動畫

為模態彈出框增加過度動畫效果:
可通過給“.modal”增加類名“fade”為模態彈出框增加一個過渡動畫效果。

<button class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-sm">
小的模態彈出窗
</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">模態彈出窗標題</h4>
   </div>
   <div class="modal-body">
    <p>模態彈出窗主體內容</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>

模態彈出窗的使用(data-參數說明)

除了通過data-toggle和data-target來控制模態彈出窗之外,Bootstrap框架針對模態彈出框還提供了其他自定義data-屬性,來控制模態彈出窗。比如說:是否有灰色背景modal-backdrop,是否可以按ESC鍵關閉模態彈出窗。有關於Modal彈出窗自定義屬性相關說明如下所示:

使用(Javascript觸發)

除了使用自定義屬性觸發模態彈出框之外,還可以通過Javascript方法來觸發模態彈出窗。通過給一個元素一個事件,來觸發。比如說給一個按鈕一個單擊事件,然後觸發模態彈出窗。如下面的一個簡單示例:

<!-- 觸發模態彈出窗元素 -->
<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">模態彈出窗標題</h4>
   </div>
   <div class="modal-body">
    <p>模態彈出窗主體內容</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觸發的彈出窗代碼:

$(function(){
 $(".btn").click(function(){
 $("#mymodal").modal();
 });
});

設置參數

使用Javascript觸發模態彈出窗時,Bootstrap框架提供了一些設置,主要包括屬性設置、參數設置和事件設置。

屬性設置

模態彈出窗默認支持的自定義屬性主要有:

比如你不想讓用戶按ESC鍵關閉模態彈出窗,你就可以這樣做:

$(function(){
 $(".btn").click(function(){
  $("#mymodal").modal({
   keyboard:false
  });
 });
});

參數設置

在Bootstrap框架中還為模態彈出窗提供了三種參數設置,具體說明如下:

事件設置

模態彈出窗還支持四種類型的事件,分別是模態彈出窗的彈出前、彈出後,關閉前、關閉後,具體描述如下:

調用方法也非常簡單:

$('#myModal').on('hidden.bs.modal', function (e) {
 // 處理代碼...
})

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved