Bootstrap - 模態框範例

模態框是什麼?

你好,有抱負的網頁開發者!今天,我們將要深入Bootstrap模態框的精彩世界。作為你們親切的小區電腦老師,我在這裡指引你們這次旅程,一步一步。所以,拿起你們最喜歡的飲料,放鬆一下,我們一起踏上這次模態框的冒險吧!

Bootstrap - Modals Demo

定義與目的

在網頁開發術語中,模態框就像是一個出現在當前頁面頂部的彈出窗口。這是一種展示內容而不需要從當前視图中導航的絕佳方式。想像你正在閱讀一篇文章,突然你想了解更多關於特定術語的信息。不需要打開一個新頁面,一個模態框可以出現,提供額外的細節,讓你能夠快速回到你的閱讀。很棒吧?

Bootstrap,我們在網頁設計中的可靠助手,提供了一個優秀的模態框組件,既容易使用又高度可定制。讓我們來探索如何實現它!

基本模態框結構

HTML結構

讓我們從Bootstrap模態框的基本HTML結構開始:

<div class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">模態框標題</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>模態框身體文字放在這裡。</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">關閉</button>
<button type="button" class="btn btn-primary">保存更改</button>
</div>
</div>
</div>
</div>

讓我們分解一下:

  1. 最外層的<div>帶有modal類是整個模態框的容器。
  2. 內部,我們有一個modal-dialog,它將模態框內容居中。
  3. modal-content div 包含我們模態框的實際內容。
  4. 我們然後有三個主要部分:
  • modal-header:包含標題和關閉按鈕。
  • modal-body:主要內容放置的地方。
  • modal-footer:通常包含動作按鈕。

觸發模態框

現在,我們如何讓這個模態框出現?我們需要一個觸發器!這通常是一個按鈕:

<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
啟動演示模態框
</button>

注意data-toggle="modal"data-target="#exampleModal"。這些告訴Bootstrap要做什麼(切換一個模態框)以及要顯示哪個模態框(具有id "exampleModal"的那個)。

記得在你的模態框中添加一個id,與data-target匹配:

<div class="modal" id="exampleModal" tabindex="-1" role="dialog">
<!-- 模態框內容在這裡 -->
</div>

自定義你的模態框

大小

Bootstrap讓你輕鬆地更改模態框的大小。只需在modal-dialog div中添加一個類:

<!-- 小模態框 -->
<div class="modal-dialog modal-sm">...</div>

<!-- 大模態框 -->
<div class="modal-dialog modal-lg">...</div>

<!-- 非常大的模態框 -->
<div class="modal-dialog modal-xl">...</div>

居中模態框

想要你的模態框完美居中?添加modal-dialog-centered類:

<div class="modal-dialog modal-dialog-centered">...</div>

可滾動模態框

如果你的模態框內容很長,你可以讓它可滾動:

<div class="modal-dialog modal-dialog-scrollable">...</div>

使用JavaScript添加功能

雖然Bootstrap的數據屬性對於基本功能來說非常好,但有時候你需要更多的控制。這時JavaScript就派上用場了!

// 顯示模態框
$('#exampleModal').modal('show');

// 隱藏模態框
$('#exampleModal').modal('hide');

// �切換模態框
$('#exampleModal').modal('toggle');

你也可以聽取模態框事件:

$('#exampleModal').on('shown.bs.modal', function () {
console.log('模態框現在可見!');
})

實際範例:刪除確認模態框

讓我們把所有東西放在一起,用一個真實世界的例子。想像我們正在建一個待辦事項應用程序,我們在刪除任務之前想要確認:

<!-- 刪除按鈕 -->
<button type="button" class="btn btn-danger" data-toggle="modal" data-target="#deleteModal">
刪除任務
</button>

<!-- 模態框 -->
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="deleteModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="deleteModalLabel">確認刪除</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
你確定要刪除此任務?這個操作無法撤回。
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
<button type="button" class="btn btn-danger" id="confirmDelete">刪除</button>
</div>
</div>
</div>
</div>

這裡有一些JavaScript來處理刪除:

$('#confirmDelete').on('click', function() {
// 刪除任務的代碼在這裡
console.log('任務已刪除!');
$('#deleteModal').modal('hide');
});

結論

恭喜你!你剛剛學會了Bootstrap模態框的來龍去脈。從基本結構到定制,甚至到一個實際的例子,你現在已經裝備好了,可以將這個強大的功能添加到你的網頁項目中。

記住,熟能生巧。嘗試創建不同類型的模態框,嘗試不同的大小和位置,最重要的是,玩得開心!也許你會成為你編碼朋友中的“模態框大師”。

開心編程,願你的模態框總是在正確的時刻彈出!

Credits: Image by storyset