Bootstrap: Modals modal.js
Giải phóng thời gian, khai phóng năng lực
Các ví dụ
Modal là một hộp thoại đơn giản nhưng rất linh hoạt với rất ít tính năng được yêu cầu cùng với các thiết lập thông minh.
Không hỗ trợ các hộp thoại xếp chồng lên nhau
Hãy lưu ý rằng, không nên mở một modal trong khi một modal khác vẫn đang hiển thị. Nếu bạn muốn hiển thị nhiều modal cùng một lúc, bạn sẽ phải chỉnh sửa code.
Ví trí các markup
Hãy luôn luôn đặt mã HTML của một modal ở vị trí cao nhất trong document của bạn để tránh việc các thành phần khác làm ảnh hưởng đến việc hiển thị cũng như là tính năng của modal
Một số vấn đề đối với thiết bị di động
Có một số vấn đề liên quan đến việc sử dụng modal trên các thiết bị di động. Hãy tham khảo tài liệu về tính hỗ trợ các trình duyệt để biết thêm chi tiết.
Ví dụ tĩnh
Một modal đã được tạo ra với phần tiêu đề, phần nội dung và một tập hợp các hành động nằm trong phần cuối.
<div class="modal fade">
<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">Modal title</h4>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
Demo trực tiếp
Kích hoạt một modal thông qua JavaScript bằng cách nhấn vào nút bên dưới. Modal sẽ trượt xuống từ phía trên của trang và dần dần hiển thị lên
<!-- Button trigger modal -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Launch demo modal
</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"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
Truy nhập modal
Hãy thêm role="dialog"
vào .modal
, thuộc tính aria-labelledby="myModalLabel"
dùng để tham chiếu đến phần tiêu đề của modal, và aria-hidden="true"
để các công nghệ hỗ trợ bỏ qua các phần tử DOM của modal.
Thêm vào đó, bạn cũng có thể thêm phần mô tả cho modal của bạn thông qua thuộc tính aria-describedby
trên .modal
.
Nhúng video YouTube
Việc nhúng các video trên YouTube vào modal đòi hỏi phải thêm JavaScript để tùy chỉnh video. Hãy tham khảo một bài viết trên Stack Overflow để biết thêm chi tiết.
Các kích thước tùy chọn
Các modal có hai kích thước tùy chọn được định nghĩa bằng các class được đặt cùng với .modal-dialog
.
<!-- Large modal -->
<button class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">Large modal</button>
<div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
...
</div>
</div>
</div>
<!-- Small modal -->
<button class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-sm">Small modal</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>
</div>
</div>
Xóa bỏ hiệu ứng động
Nếu bạn muốn các modal hiển thị một cách đơn giản thay vì có các hiệu ứng như fade, hãy xóa bỏ class .fade
khỏi markup modal của bạn.
<div class="modal" tabindex="-1" role="dialog" aria-labelledby="" aria-hidden="true">
...
</div>
Cách sử dụng
Plugin modal hiển thị nội dung ẩn của bạn khi được gọi, thông qua các thuộc tính dữ liệu hoặc JavaScript. Nó cũng thêm .modal-open
vào <body>
để ghi đè hành vi của scroll mặc định và sinh ra một .modal-backdrop
, một vùng mà khi bạn nhấn vào đó (bên ngoài modal) sẽ làm ẩn modal đó đi.
Thông qua các thuộc tính dữ liệu
Bạn có thể kích hoạt một modal mà không cần phải viết một đoạn mã JavaScript nào cả. Chỉ cần thiết lập data-toggle="modal"
trên phần tử điều khiển, ví dụ như một nút, cùng với data-target="#foo"
hoặc href="#foo"
để hướng mục tiêu đến một modal cụ thể.
<button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>
Thông qua JavaScript
Gọi một modal với id myModal
bằng chỉ một dòng JavaScript duy nhất:
$('#myModal').modal(options)
Các tùy chọn
Các tùy chọn có thể được truyền thông qua các thuộc tính dữ liệu hoặc JavaScript. Đối với các thuộc tính dữ liệu, hãy thêm tên của tùy chọn đó vào sau data-
, tương tự như data-backdrop=""
.
Tên | Loại | Mặc định | Mô tả |
---|---|---|---|
backdrop | boolean or the string'static' |
true | Thêm phần tử modal-backdrop. Ngoài ra, thiết lập static cho một backdrop để không đóng modal khi click vào backdrop đó. |
keyboard | boolean | true | Đóng modal khi nhấn phím "Escape" |
show | boolean | true | Hiển thị modal khi đã được khởi tạo. |
remote | path | false |
Nếu một đường dẫn được cung cấp, nội dung sẽ được tải duy nhất một lần thông qua phương thức
|
Các phương thức
.modal(options)
Phương thức này có tác dụng hiển thi nội dung của bạn giống như một modal, nó nhận object
đầu vào như là các tùy chọn.
$('#myModal').modal({
keyboard: false
})
.modal('toggle')
Mở modal bằng tay. Trả về cho caller trước khi modal thực sự được hiển thị hoặc ẩn đi (Ví dụ :Trước khi sự kiệnshown.bs.modal
hoặc hidden.bs.modal
xảy ra).
$('#myModal').modal('toggle')
.modal('show')
Mở modal bằng tay. Trả về cho caller trước khi modal thực sự được hiển thị (Ví dụ: Trước khi sự kiện shown.bs.modal
xảy ra).
$('#myModal').modal('show')
.modal('hide')
Đóng modal bằng tay. Trả về cho caller trước khi modal thực sự ẩn đị (Ví dụ: Trước khi sự kiện hidden.bs.modal
xảy ra).
$('#myModal').modal('hide')
Các sự kiện
Các class modal của Bootstrap hỗ trợ một số sự kiện cho việc kích hoạt các tính năng của modal.
Loại sự kiện | Mô tả |
---|---|
show.bs.modal | Sự kiện xảy ra ngay khi phương thức show được gọi. Nếu được kích hoạt bằng click thì phần tử được click sẽ giống như thuộc tính relatedTarget của sự kiện. |
shown.bs.modal | Sự kiện này xảy ra ngay khi modal hiển thị (đang chờ CSS transition kết thúc). Nếu được kích hoạt bằng click thì phần tử được click sẽ giống như thuộc tính relatedTarget của sự kiện. |
hide.bs.modal | Sự kiện này xảy ra ngay khi phương thức hide được gọi. |
hidden.bs.modal | Sự kiện này xảy ra ngay khi modal ẩn đi hoàn toàn (đang chờ CSS transition kết thúc). |
loaded.bs.modal | Sự kiện này xảy ra khi modal được tải nội dung bằng tùy chọn từ xa. |
$('#myModal').on('hidden.bs.modal', function (e) {
// do something...
})
Giải phóng thời gian, khai phóng năng lực