Tổng quan

Cá nhân hoặc tổng hợp

Các plugin có thể được bao gồm riêng lẻ (sử dụng các tệp riêng lẻ của Bootstrap *.js) hoặc tất cả cùng một lúc (sử dụng bootstrap.jshoặc rút gọn bootstrap.min.js).

Sử dụng JavaScript đã biên dịch

Cả hai bootstrap.jsbootstrap.min.jschứa tất cả các plugin trong một tệp duy nhất. Chỉ bao gồm một.

Sự phụ thuộc của plugin

Một số plugin và thành phần CSS phụ thuộc vào các plugin khác. Nếu bạn bao gồm các plugin riêng lẻ, hãy đảm bảo kiểm tra các phần phụ thuộc này trong tài liệu. Cũng lưu ý rằng tất cả các plugin phụ thuộc vào jQuery (điều này có nghĩa là jQuery phải được bao gồm trước các tệp plugin). Tham khảo ý kiến ​​của chúng tôibower.json để xem phiên bản jQuery nào được hỗ trợ.

Thuộc tính dữ liệu

Bạn có thể sử dụng tất cả các plugin Bootstrap hoàn toàn thông qua API đánh dấu mà không cần viết một dòng JavaScript nào. Đây là API hạng nhất của Bootstrap và bạn nên cân nhắc đầu tiên khi sử dụng một plugin.

Điều đó nói rằng, trong một số trường hợp, bạn có thể muốn tắt chức năng này. Do đó, chúng tôi cũng cung cấp khả năng vô hiệu hóa API thuộc tính dữ liệu bằng cách hủy liên kết tất cả các sự kiện trên tài liệu có vị trí đặt với data-api. Nó trông như thế này:

$(document).off('.data-api')

Ngoài ra, để nhắm mục tiêu một plugin cụ thể, chỉ cần bao gồm tên của plugin làm không gian tên cùng với không gian tên data-api như sau:

$(document).off('.alert.data-api')

Chỉ một plugin cho mỗi phần tử thông qua các thuộc tính dữ liệu

Không sử dụng các thuộc tính dữ liệu từ nhiều plugin trên cùng một phần tử. Ví dụ: một nút không thể vừa có chú giải công cụ vừa có thể chuyển đổi một phương thức. Để thực hiện điều này, hãy sử dụng một phần tử bao bọc.

API có lập trình

Chúng tôi cũng tin rằng bạn có thể sử dụng tất cả các plugin Bootstrap hoàn toàn thông qua API JavaScript. Tất cả các API công khai đều là các phương thức đơn lẻ, có thể điều khiển được và trả về bộ sưu tập đã hoạt động.

$('.btn.danger').button('toggle').addClass('fat')

Tất cả các phương thức phải chấp nhận một đối tượng tùy chọn tùy chọn, một chuỗi nhắm mục tiêu một phương thức cụ thể hoặc không có gì (khởi chạy một plugin với hành vi mặc định):

$('#myModal').modal()                      // initialized with defaults
$('#myModal').modal({ keyboard: false })   // initialized with no keyboard
$('#myModal').modal('show')                // initializes and invokes show immediately

Mỗi plugin cũng hiển thị hàm tạo thô của nó trên thuộc tính Constructor:. $.fn.popover.ConstructorNếu bạn muốn nhận một phiên bản plugin cụ thể, hãy truy xuất nó trực tiếp từ một phần tử $('[rel="popover"]').data('popover'):.

Thiết lập mặc định

Bạn có thể thay đổi cài đặt mặc định cho plugin bằng cách sửa đổi Constructor.DEFAULTSđối tượng của plugin:

$.fn.modal.Constructor.DEFAULTS.keyboard = false // changes default for the modal plugin's `keyboard` option to false

Không có xung đột

Đôi khi cần sử dụng các plugin Bootstrap với các khung giao diện người dùng khác. Trong những trường hợp này, đôi khi có thể xảy ra xung đột không gian tên. Nếu điều này xảy ra, bạn có thể gọi .noConflictplugin mà bạn muốn hoàn nguyên giá trị.

var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton            // give $().bootstrapBtn the Bootstrap functionality

Sự kiện

Bootstrap cung cấp các sự kiện tùy chỉnh cho hầu hết các hành động độc đáo của plugin. Nói chung, chúng có dạng phân từ nguyên thể và quá khứ - trong đó nguyên thể (ví dụ show) được kích hoạt khi bắt đầu một sự kiện và dạng phân từ trong quá khứ của nó (ví dụ shown) được kích hoạt khi hoàn thành một hành động.

Kể từ 3.0.0, tất cả các sự kiện Bootstrap đều có không gian tên.

Tất cả các sự kiện vô tận đều cung cấp preventDefaultchức năng. Điều này cung cấp khả năng dừng thực hiện một hành động trước khi nó bắt đầu.

$('#myModal').on('show.bs.modal', function (e) {
  if (!data) return e.preventDefault() // stops modal from being shown
})

Số phiên bản

Phiên bản của mỗi plugin jQuery của Bootstrap có thể được truy cập thông qua thuộc VERSIONtính của hàm tạo của plugin. Ví dụ: đối với plugin chú giải công cụ:

$.fn.tooltip.Constructor.VERSION // => "3.3.7"

Không có dự phòng đặc biệt khi JavaScript bị tắt

Các plugin của Bootstrap không hoạt động trở lại một cách đặc biệt duyên dáng khi JavaScript bị tắt. Nếu bạn quan tâm đến trải nghiệm người dùng trong trường hợp này, hãy sử dụng <noscript>để giải thích tình huống (và cách bật lại JavaScript) cho người dùng của bạn và / hoặc thêm các dự phòng tùy chỉnh của riêng bạn.

Thư viện bên thứ ba

Bootstrap không chính thức hỗ trợ các thư viện JavaScript của bên thứ ba như Prototype hoặc jQuery UI. Bất chấp .noConflictvà các sự kiện không gian tên, có thể có các vấn đề tương thích mà bạn cần tự khắc phục.

Chuyển đổi chuyển tiếp.js

Giới thiệu về quá trình chuyển đổi

Đối với các hiệu ứng chuyển tiếp đơn giản, hãy bao gồm transition.jsmột lần cùng với các tệp JS khác. Nếu bạn đang sử dụng phần mềm đã biên dịch (hoặc được rút gọn) bootstrap.js, thì không cần phải bao gồm phần này — nó đã ở đó.

Có gì bên trong

Transition.js là một trình trợ giúp cơ bản cho transitionEndcác sự kiện cũng như một trình mô phỏng chuyển đổi CSS. Nó được các plugin khác sử dụng để kiểm tra hỗ trợ chuyển tiếp CSS và bắt các chuyển đổi bị treo.

Tắt chuyển đổi

Quá trình chuyển đổi có thể bị vô hiệu hóa trên toàn cầu bằng cách sử dụng đoạn mã JavaScript sau, đoạn mã này phải xuất hiện sau khi transition.js(hoặc bootstrap.jshoặc bootstrap.min.js, tùy từng trường hợp) đã tải xong:

$.support.transition = false

Modals modal.js

Các chế độ được sắp xếp hợp lý, nhưng linh hoạt, lời nhắc hộp thoại với chức năng bắt buộc tối thiểu và các giá trị mặc định thông minh.

Nhiều chế độ mở không được hỗ trợ

Đảm bảo không mở một phương thức trong khi một phương thức khác vẫn hiển thị. Việc hiển thị nhiều phương thức cùng một lúc yêu cầu mã tùy chỉnh.

Vị trí đánh dấu phương thức

Luôn cố gắng đặt mã HTML của phương thức ở vị trí cấp cao nhất trong tài liệu của bạn để tránh các thành phần khác ảnh hưởng đến giao diện và / hoặc chức năng của phương thức.

Cảnh báo thiết bị di động

Có một số lưu ý liên quan đến việc sử dụng các phương thức trên thiết bị di động. Xem tài liệu hỗ trợ trình duyệt của chúng tôi để biết chi tiết.

Do cách HTML5 xác định ngữ nghĩa của nó, autofocusthuộc tính HTML không có tác dụng trong các phương thức Bootstrap. Để đạt được hiệu quả tương tự, hãy sử dụng một số JavaScript tùy chỉnh:

$('#myModal').on('shown.bs.modal', function () {
  $('#myInput').focus()
})

Các ví dụ

Ví dụ tĩnh

Một phương thức được hiển thị với tiêu đề, nội dung và tập hợp các hành động trong chân trang.

<div class="modal fade" tabindex="-1" role="dialog">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title">Modal title</h4>
      </div>
      <div class="modal-body">
        <p>One fine body&hellip;</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 -->

Bản thử trực tiếp

Chuyển đổi một phương thức qua JavaScript bằng cách nhấp vào nút bên dưới. Nó sẽ trượt xuống và mờ dần từ đầu trang.

<!-- Button trigger modal -->
<button type="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">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</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>

Làm cho các phương thức có thể truy cập được

Đảm bảo thêm role="dialog"aria-labelledby="...", tham chiếu đến tiêu đề phương thức, đến .modalrole="document"chính .modal-dialognó.

Ngoài ra, bạn có thể đưa ra mô tả về hộp thoại phương thức của mình với aria-describedbybật .modal.

Nhúng video YouTube

Nhúng video YouTube trong các phương thức yêu cầu JavaScript bổ sung không có trong Bootstrap để tự động dừng phát lại và hơn thế nữa. Xem bài đăng Stack Overflow hữu ích này để biết thêm thông tin.

Kích thước tùy chọn

Phương thức có hai kích thước tùy chọn, có sẵn thông qua các lớp bổ trợ để được đặt trên a .modal-dialog.

<!-- Large modal -->
<button type="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">
  <div class="modal-dialog modal-lg" role="document">
    <div class="modal-content">
      ...
    </div>
  </div>
</div>

<!-- Small modal -->
<button type="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">
  <div class="modal-dialog modal-sm" role="document">
    <div class="modal-content">
      ...
    </div>
  </div>
</div>

Xóa hoạt ảnh

Đối với các phương thức chỉ xuất hiện thay vì mờ dần để xem, hãy xóa .fadelớp khỏi đánh dấu phương thức của bạn.

<div class="modal" tabindex="-1" role="dialog" aria-labelledby="...">
  ...
</div>

Sử dụng hệ thống lưới

Để tận dụng lợi thế của hệ thống lưới Bootstrap trong một phương thức, chỉ cần lồng .rowcác s vào bên trong .modal-bodyvà sau đó sử dụng các lớp hệ thống lưới thông thường.

<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="gridSystemModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="gridSystemModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        <div class="row">
          <div class="col-md-4">.col-md-4</div>
          <div class="col-md-4 col-md-offset-4">.col-md-4 .col-md-offset-4</div>
        </div>
        <div class="row">
          <div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
          <div class="col-md-2 col-md-offset-4">.col-md-2 .col-md-offset-4</div>
        </div>
        <div class="row">
          <div class="col-md-6 col-md-offset-3">.col-md-6 .col-md-offset-3</div>
        </div>
        <div class="row">
          <div class="col-sm-9">
            Level 1: .col-sm-9
            <div class="row">
              <div class="col-xs-8 col-sm-6">
                Level 2: .col-xs-8 .col-sm-6
              </div>
              <div class="col-xs-4 col-sm-6">
                Level 2: .col-xs-4 .col-sm-6
              </div>
            </div>
          </div>
        </div>
      </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 -->

Có một loạt các nút đều kích hoạt cùng một phương thức, chỉ với nội dung hơi khác nhau? Sử dụng event.relatedTargetvà các thuộc tính HTMLdata-* (có thể thông qua jQuery ) để thay đổi nội dung của phương thức tùy thuộc vào nút nào được nhấp. Xem tài liệu Sự kiện phương thức để biết chi tiết về relatedTarget,

... các nút khác ...
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">Open modal for @mdo</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@fat">Open modal for @fat</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@getbootstrap">Open modal for @getbootstrap</button>
...more buttons...

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="exampleModalLabel">New message</h4>
      </div>
      <div class="modal-body">
        <form>
          <div class="form-group">
            <label for="recipient-name" class="control-label">Recipient:</label>
            <input type="text" class="form-control" id="recipient-name">
          </div>
          <div class="form-group">
            <label for="message-text" class="control-label">Message:</label>
            <textarea class="form-control" id="message-text"></textarea>
          </div>
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Send message</button>
      </div>
    </div>
  </div>
</div>
$('#exampleModal').on('show.bs.modal', function (event) {
  var button = $(event.relatedTarget) // Button that triggered the modal
  var recipient = button.data('whatever') // Extract info from data-* attributes
  // If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
  // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
  var modal = $(this)
  modal.find('.modal-title').text('New message to ' + recipient)
  modal.find('.modal-body input').val(recipient)
})

Cách sử dụng

Plugin phương thức chuyển đổi nội dung ẩn của bạn theo yêu cầu, thông qua các thuộc tính dữ liệu hoặc JavaScript. Nó cũng thêm .modal-openvào <body>để ghi đè hành vi cuộn mặc định và tạo ra một .modal-backdropvùng nhấp chuột để loại bỏ các phương thức được hiển thị khi nhấp vào bên ngoài phương thức.

Qua các thuộc tính dữ liệu

Kích hoạt một phương thức mà không cần viết JavaScript. Đặt data-toggle="modal"trên một phần tử bộ điều khiển, như một nút, cùng với data-target="#foo"hoặc href="#foo"để nhắm mục tiêu một phương thức cụ thể để chuyển đổi.

<button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>

Qua JavaScript

Gọi một phương thức có id myModalvới một dòng JavaScript:

$('#myModal').modal(options)

Tùy chọn

Các tùy chọn có thể được chuyển 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 nối tên tùy chọn vào data-, như trong data-backdrop="".

Tên loại hình mặc định sự mô tả
phông nền boolean hoặc chuỗi'static' thật Bao gồm một yếu tố phương thức-phông nền. Ngoài ra, chỉ định staticphông nền không đóng phương thức khi nhấp chuột.
bàn phím boolean thật Đóng phương thức khi nhấn phím thoát
buổi bieu diễn boolean thật Hiển thị phương thức khi khởi tạo.
Xa xôi đường dẫn sai

Tùy chọn này không được dùng nữa kể từ v3.3.0 và đã bị xóa trong v4. Thay vào đó, chúng tôi khuyên bạn nên sử dụng tạo khuôn mẫu phía máy khách hoặc khung liên kết dữ liệu hoặc tự gọi jQuery.load .

Nếu một URL từ xa được cung cấp, nội dung sẽ được tải một lần qua loadphương thức của jQuery và được đưa vào .modal-contentdiv. Nếu bạn đang sử dụng data-api, bạn có thể sử dụng hrefthuộc tính này để chỉ định nguồn từ xa. Ví dụ về điều này được hiển thị bên dưới:

<a data-toggle="modal" href="remote.html" data-target="#modal">Click me</a>

Phương pháp

Kích hoạt nội dung của bạn như một phương thức. Chấp nhận một tùy chọn tùy chọn object.

$('#myModal').modal({
  keyboard: false
})

Chuyển đổi một phương thức theo cách thủ công. Trả về cho người gọi trước khi phương thức thực sự được hiển thị hoặc ẩn (tức là trước khi sự kiện shown.bs.modalhoặc hidden.bs.modalsự kiện xảy ra).

$('#myModal').modal('toggle')

Mở một phương thức theo cách thủ công. Trả về người gọi trước khi phương thức thực sự được hiển thị (tức là trước khi shown.bs.modalsự kiện xảy ra).

$('#myModal').modal('show')

Ẩn một phương thức theo cách thủ công. Trả về người gọi trước khi phương thức thực sự bị ẩn (tức là trước khi hidden.bs.modalsự kiện xảy ra).

$('#myModal').modal('hide')

Điều chỉnh lại vị trí của phương thức để chống lại một thanh cuộn trong trường hợp một thanh cuộn xuất hiện, điều này sẽ làm cho phương thức nhảy sang trái.

Chỉ cần thiết khi chiều cao của phương thức thay đổi trong khi nó đang mở.

$('#myModal').modal('handleUpdate')

Sự kiện

Lớp phương thức của Bootstrap cho thấy một vài sự kiện để kết nối vào chức năng phương thức.

Tất cả các sự kiện của phương thức được kích hoạt tại chính phương thức (tức là tại <div class="modal">).

Loại sự kiện Sự mô tả
show.bs.modal Sự kiện này kích hoạt ngay lập tức khi showphương thức thể hiện được gọi. Nếu do một lần nhấp gây ra, phần tử được nhấp sẽ có sẵn dưới dạng thuộc relatedTargettính của sự kiện.
show.bs.modal Sự kiện này được kích hoạt khi phương thức đã được hiển thị cho người dùng (sẽ đợi quá trình chuyển đổi CSS hoàn tất). Nếu do một lần nhấp gây ra, phần tử được nhấp sẽ có sẵn dưới dạng thuộc relatedTargettính của sự kiện.
hide.bs.modal Sự kiện này được kích hoạt ngay lập tức khi hidephương thức thể hiện đã được gọi.
hidden.bs.modal Sự kiện này được kích hoạt khi phương thức hoàn tất bị ẩn khỏi người dùng (sẽ đợi quá trình chuyển đổi CSS hoàn tất).
load.bs.modal Sự kiện này được kích hoạt khi phương thức đã tải nội dung bằng cách sử dụng remotetùy chọn.
$('#myModal').on('hidden.bs.modal', function (e) {
  // do something...
})

Dropdown dropdown.js

Thêm menu thả xuống vào hầu hết mọi thứ với plugin đơn giản này, bao gồm thanh điều hướng, tab và viên thuốc.

Trong một thanh điều hướng

Trong viên thuốc

Thông qua thuộc tính dữ liệu hoặc JavaScript, plugin thả xuống chuyển đổi nội dung ẩn (menu thả xuống) bằng cách chuyển đổi .openlớp trên mục danh sách mẹ.

Trên thiết bị di động, việc mở menu thả xuống sẽ thêm .dropdown-backdropvùng nhấn để đóng menu thả xuống khi nhấn bên ngoài menu, một yêu cầu để được hỗ trợ iOS thích hợp. Điều này có nghĩa là việc chuyển từ một menu thả xuống đang mở sang một menu thả xuống khác yêu cầu thêm một lần nhấn trên thiết bị di động.

Lưu ý: data-toggle="dropdown"Thuộc tính được dựa vào để đóng menu thả xuống ở cấp ứng dụng, vì vậy bạn nên luôn sử dụng nó.

Qua các thuộc tính dữ liệu

Thêm data-toggle="dropdown"vào liên kết hoặc nút để chuyển đổi menu thả xuống.

<div class="dropdown">
  <button id="dLabel" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropdown trigger
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu" aria-labelledby="dLabel">
    ...
  </ul>
</div>

Để giữ nguyên các URL với các nút liên kết, hãy sử dụng data-targetthuộc tính thay vì href="#".

<div class="dropdown">
  <a id="dLabel" data-target="#" href="http://example.com/" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
    Dropdown trigger
    <span class="caret"></span>
  </a>

  <ul class="dropdown-menu" aria-labelledby="dLabel">
    ...
  </ul>
</div>

Qua JavaScript

Gọi các trình đơn thả xuống qua JavaScript:

$('.dropdown-toggle').dropdown()

data-toggle="dropdown"vẫn được yêu cầu

Bất kể bạn gọi menu thả xuống của mình qua JavaScript hay thay vào đó sử dụng data-api, data-toggle="dropdown"luôn bắt buộc phải có trên phần tử trình kích hoạt của menu thả xuống.

Không có

Chuyển đổi menu thả xuống của một thanh điều hướng hoặc tab điều hướng nhất định.

Tất cả các sự kiện thả xuống đều được kích hoạt tại .dropdown-menuphần tử mẹ của.

Tất cả các sự kiện thả xuống đều có một relatedTargetthuộc tính, có giá trị là phần tử neo chuyển đổi.

Loại sự kiện Sự mô tả
show.bs.dropdown Sự kiện này kích hoạt ngay lập tức khi phương thức thể hiện show được gọi.
show.bs.dropdown Sự kiện này được kích hoạt khi menu thả xuống hiển thị cho người dùng (sẽ đợi quá trình chuyển đổi CSS hoàn tất).
hide.bs.dropdown Sự kiện này được kích hoạt ngay lập tức khi phương thức ẩn thể hiện đã được gọi.
hidden.bs.dropdown Sự kiện này được kích hoạt khi danh sách thả xuống hoàn tất bị ẩn khỏi người dùng (sẽ đợi quá trình chuyển đổi CSS hoàn tất).
$('#myDropdown').on('show.bs.dropdown', function () {
  // do something…
})

ScrollSpy scrollspy.js

Ví dụ trong thanh điều hướng

Plugin ScrollSpy dùng để tự động cập nhật các mục tiêu điều hướng dựa trên vị trí cuộn. Cuộn khu vực bên dưới thanh điều hướng và xem thay đổi lớp đang hoạt động. Các mục phụ thả xuống cũng sẽ được đánh dấu.

@mập mạp

Bàn phím xà cạp quảng cáo, bữa tiệc nửa buổi id nghệ thuật dolor labore. Pitchfork yr enim lo-fi trước khi họ bán hết. Tumblr farm-to-table xe đạp quyền bất cứ điều gì. Anim keffiyeh carles cardigan. Gian hàng ảnh 3 con sói mặt trăng của Velit seitan mcsweeney. Cosby áo len lomo quần short jean, williamsburg hoodie minim qui có thể bạn chưa nghe nói về chúng et cardigan quỹ tín thác quần áo culpa biodiesel wes anderson thẩm mỹ. Nihil hình xăm tố cáo, tín dụng mỉa mai biodiesel keffiyeh nghệ nhân ullamcoequat.

@mdo

Veniam marfa ria mép ván trượt, adipisicing fugiat velit pitchfork râu. Freegan râu aliqua cupidatat mcsweeney's vero. Cupidatat bốn loko nisi, ea helvetica nulla carles. Xe chở đồ ăn bằng áo len hình xăm cosby, mcsweeney's quis non freegan vinyl. Lo-fi wes anderson +1 sartorial. Carles tập thể dục không thẩm mỹ quis gentrify. Brooklyn adipisicing bia thủ công phó bàn thờ chính.

một

Occaecat goodso aliqua delectus. Fap bia thủ công cần ván trượt ea. Lomo xe đạp quyền adipisicing banh mi, velit ea sunt cấp tiếp theo locavore cà phê một nguồn gốc ở magna veniam. Cuộc sống cao id vinyl, echo park resultat quis aliquip banh mi pitchfork. Vero VHS est adipisicing. Túi nhỏ nhắn tự làm Consectetur nisi. Cred ex in, bền vững delectus consectetur fanny pack iphone.

hai

In incididunt echo park, officia deserunt mcsweeney's proident master cleanse thundercats sapiente veniam. Excepteur VHS elit, proident shoreditch +1 biodiesel laborum craft beer. Single-origin coffee wayfarers irure four loko, cupidatat terry richardson master cleanse. Assumenda you probably haven't heard of them art party fanny pack, tattooed nulla cardigan tempor ad. Proident wolf nesciunt sartorial keffiyeh eu banh mi sustainable. Elit wolf voluptate, lo-fi ea portland before they sold out four loko. Locavore enim nostrud mlkshk brooklyn nesciunt.

three

Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.

Keytar twee blog, culpa messenger bag marfa bất cứ thứ gì xe tải đồ ăn ngon. Sapiente synth id giả định. Locavore sed helvetica mỉa mai châm biếm, những chiếc áo khoác sấm sét mà bạn có thể chưa nghe nói về chúng do áo hoodie không chứa gluten lo-fi fap aliquip. Labore elit placeat trước khi bán hết hàng, terry richardson proident brunch nesciunt quis cosby sweater nghệ nhân của nghệ nhân p Cosre elit keffiyeh ut helvetica. Cardigan bia thủ công seitan velit làm sẵn. VHS chambray labris tempor veniam. Hoạt hình mollit minimine hàng hóa ullamco Thundercats.

Cách sử dụng

Yêu cầu Bootstrap nav

Scrollspy hiện yêu cầu sử dụng thành phần Bootstrap nav để làm nổi bật các liên kết đang hoạt động.

Mục tiêu ID có thể phân giải bắt buộc

Các liên kết thanh điều hướng phải có các mục tiêu id có thể phân giải được. Ví dụ, một <a href="#home">home</a>phải tương ứng với một cái gì đó trong DOM như <div id="home"></div>.

Các phần tử không phải :visiblemục tiêu bị bỏ qua

Các phần tử mục tiêu không :visibletheo jQuery sẽ bị bỏ qua và các mục điều hướng tương ứng của chúng sẽ không bao giờ được đánh dấu.

Yêu cầu định vị tương đối

Bất kể phương pháp triển khai nào, scrollspy yêu cầu sử dụng position: relative;phần tử mà bạn đang theo dõi. Trong hầu hết các trường hợp, đây là <body>. Khi cuộn tìm kiếm trên các phần tử khác với phần tử <body>, hãy đảm bảo có một heighttập hợp và overflow-y: scroll;được áp dụng.

Qua các thuộc tính dữ liệu

Để dễ dàng thêm hành vi cuộn tròn vào điều hướng thanh trên cùng của bạn, hãy thêm data-spy="scroll"vào phần tử bạn muốn theo dõi (thông thường nhất sẽ là phần tử này <body>). Sau đó, thêm data-targetthuộc tính với ID hoặc lớp của phần tử mẹ của bất kỳ .navthành phần Bootstrap nào.

body {
  position: relative;
}
<body data-spy="scroll" data-target="#navbar-example">
  ...
  <div id="navbar-example">
    <ul class="nav nav-tabs" role="tablist">
      ...
    </ul>
  </div>
  ...
</body>

Qua JavaScript

Sau khi thêm position: relative;CSS của bạn, hãy gọi scrollspy qua JavaScript:

$('body').scrollspy({ target: '#navbar-example' })

Phương pháp

.scrollspy('refresh')

Khi sử dụng scrollspy kết hợp với việc thêm hoặc xóa các phần tử khỏi DOM, bạn sẽ cần gọi phương thức làm mới như sau:

$('[data-spy="scroll"]').each(function () {
  var $spy = $(this).scrollspy('refresh')
})

Tùy chọn

Các tùy chọn có thể được chuyển 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 nối tên tùy chọn vào data-, như trong data-offset="".

Tên loại hình mặc định sự mô tả
bù lại con số 10 Điểm ảnh để bù đắp từ trên cùng khi tính toán vị trí của cuộn.

Sự kiện

Loại sự kiện Sự mô tả
active.bs.scrollspy Sự kiện này kích hoạt bất cứ khi nào một mục mới được kích hoạt bởi con lăn.
$('#myScrollspy').on('activate.bs.scrollspy', function () {
  // do something…
})

Các tab có thể chuyển đổi tab.js

Các tab mẫu

Thêm chức năng tab động, nhanh chóng để chuyển đổi qua các ngăn nội dung cục bộ, ngay cả qua menu thả xuống. Các tab lồng nhau không được hỗ trợ.

Chất liệu denim thô chắc hẳn bạn chưa từng nghe nói đến quần short jean Austin. Nesciunt đậu phụ stumptown aliqua, làm sạch tổng thể retro synth. Ria mép khuôn mẫu, williamsburg carles vegan helvetica. Người bán thịt người bán thịt retro keffiyeh dreamcatcher synth. Áo len Cosby eu banh mi, qui irure terry richardson ex ink. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan may mặc của mỹ, butcher voluptate nisi qui.

Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.

Mở rộng điều hướng theo tab

Plugin này mở rộng thành phần điều hướng theo tab để thêm các khu vực có thể lập tab.

Cách sử dụng

Bật các tab có thể chuyển thành tab qua JavaScript (mỗi tab cần được kích hoạt riêng lẻ):

$('#myTabs a').click(function (e) {
  e.preventDefault()
  $(this).tab('show')
})

Bạn có thể kích hoạt các tab riêng lẻ theo một số cách:

$('#myTabs a[href="#profile"]').tab('show') // Select tab by name
$('#myTabs a:first').tab('show') // Select first tab
$('#myTabs a:last').tab('show') // Select last tab
$('#myTabs li:eq(2) a').tab('show') // Select third tab (0-indexed)

Đánh dấu

Bạn có thể kích hoạt điều hướng tab hoặc viên thuốc mà không cần viết bất kỳ JavaScript nào bằng cách chỉ định data-toggle="tab"hoặc data-toggle="pill"trên một phần tử. Thêm navnav-tabscác lớp vào tab sẽ áp dụng kiểu tabul Bootstrap , trong khi thêm và các lớp sẽ áp dụng kiểu viên .navnav-pills

<div>

  <!-- Nav tabs -->
  <ul class="nav nav-tabs" role="tablist">
    <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
    <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
    <li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
    <li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
  </ul>

  <!-- Tab panes -->
  <div class="tab-content">
    <div role="tabpanel" class="tab-pane active" id="home">...</div>
    <div role="tabpanel" class="tab-pane" id="profile">...</div>
    <div role="tabpanel" class="tab-pane" id="messages">...</div>
    <div role="tabpanel" class="tab-pane" id="settings">...</div>
  </div>

</div>

Hiệu ứng mờ dần

Để làm cho các tab mờ dần, hãy thêm .fadevào từng tab .tab-pane. Ngăn tab đầu tiên cũng phải .inhiển thị nội dung ban đầu.

<div class="tab-content">
  <div role="tabpanel" class="tab-pane fade in active" id="home">...</div>
  <div role="tabpanel" class="tab-pane fade" id="profile">...</div>
  <div role="tabpanel" class="tab-pane fade" id="messages">...</div>
  <div role="tabpanel" class="tab-pane fade" id="settings">...</div>
</div>

Phương pháp

$().tab

Kích hoạt phần tử tab và vùng chứa nội dung. Tab phải có một data-targethoặc một hrefnhắm mục tiêu một nút vùng chứa trong DOM. Trong các ví dụ trên, các tab là các tab <a>data-toggle="tab"thuộc tính.

.tab('show')

Chọn tab nhất định và hiển thị nội dung liên quan của nó. Bất kỳ tab nào khác đã được chọn trước đó sẽ trở thành không được chọn và nội dung liên quan của nó bị ẩn. Trả về trình gọi trước khi ngăn tab thực sự được hiển thị (tức là trước khi shown.bs.tabsự kiện xảy ra).

$('#someTab').tab('show')

Sự kiện

Khi hiển thị một tab mới, các sự kiện sẽ kích hoạt theo thứ tự sau:

  1. hide.bs.tab(trên tab hoạt động hiện tại)
  2. show.bs.tab(trên tab được hiển thị)
  3. hidden.bs.tab(trên tab hoạt động trước đó, tab tương tự như cho hide.bs.tabsự kiện)
  4. shown.bs.tab(trên tab vừa được hiển thị mới hoạt động, tab tương tự như đối với show.bs.tabsự kiện)

Nếu không có tab nào hoạt động, thì sự kiện hide.bs.tabhidden.bs.tabsẽ không được kích hoạt.

Loại sự kiện Sự mô tả
show.bs.tab Sự kiện này kích hoạt trên chương trình tab, nhưng trước khi tab mới được hiển thị. Sử dụng event.targetevent.relatedTargetđể nhắm mục tiêu tab đang hoạt động và tab đang hoạt động trước đó (nếu có) tương ứng.
show.bs.tab Sự kiện này kích hoạt trên tab hiển thị sau khi tab được hiển thị. Sử dụng event.targetevent.relatedTargetđể nhắm mục tiêu tab đang hoạt động và tab đang hoạt động trước đó (nếu có) tương ứng.
hide.bs.tab Sự kiện này kích hoạt khi một tab mới được hiển thị (và do đó tab đang hoạt động trước đó sẽ bị ẩn). Sử dụng event.targetevent.relatedTargetđể nhắm mục tiêu tab đang hoạt động hiện tại và tab sắp hoạt động mới, tương ứng.
hidden.bs.tab Sự kiện này kích hoạt sau khi một tab mới được hiển thị (và do đó tab hoạt động trước đó bị ẩn). Sử dụng event.targetevent.relatedTargetđể nhắm mục tiêu tab hoạt động trước đó và tab hoạt động mới, tương ứng.
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
  e.target // newly activated tab
  e.relatedTarget // previous active tab
})

Chú giải công cụ tooltip.js

Lấy cảm hứng từ plugin jQuery.tipsy tuyệt vời được viết bởi Jason Frame; Chú giải công cụ là phiên bản cập nhật, không dựa vào hình ảnh, sử dụng CSS3 cho hoạt ảnh và thuộc tính dữ liệu để lưu trữ tiêu đề cục bộ.

Chú giải công cụ có tiêu đề dài bằng 0 không bao giờ được hiển thị.

Các ví dụ

Di chuột qua các liên kết bên dưới để xem các chú giải công cụ:

Những chiếc quần bó sát cấp độ tiếp theo có thể bạn chưa từng nghe nói về chúng. Ảnh gian hàng râu vải thô denim letterpress túi đưa tin thuần chay stumptown. Seitan từ trang trại đến bàn ăn, quần áo Mỹ 8-bit quinoa bền vững fixie của mcsweeney có một chambray vinyl richardson terry. Beard stumptown, cardigans banh mi lomo Thundercats. Đậu phụ diesel sinh học williamsburg marfa, bánh chambray thuần chay làm sạch 4 loko mcsweeney. Một nghệ nhân thực sự mỉa mai bất cứ thứ gì keytar , scenester farm-to-table banky Austin twitter xử lý virus cà phê nguyên liệu denim freegan.

Chú giải công cụ tĩnh

Bốn tùy chọn có sẵn: trên cùng, bên phải, bên dưới và căn trái.

Bốn hướng

<button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="left" title="Tooltip on left">Tooltip on left</button>

<button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="top" title="Tooltip on top">Tooltip on top</button>

<button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">Tooltip on bottom</button>

<button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="right" title="Tooltip on right">Tooltip on right</button>

Chức năng chọn tham gia

Vì lý do hiệu suất, Tooltip và Popover data-apis được chọn tham gia, nghĩa là bạn phải tự khởi chạy chúng .

Một cách để khởi tạo tất cả các chú giải công cụ trên một trang là chọn chúng theo data-togglethuộc tính của chúng:

$(function () {
  $('[data-toggle="tooltip"]').tooltip()
})

Cách sử dụng

Plugin chú giải công cụ tạo nội dung và đánh dấu theo yêu cầu và theo mặc định đặt chú giải công cụ sau phần tử kích hoạt của chúng.

Kích hoạt chú giải công cụ qua JavaScript:

$('#example').tooltip(options)

Đánh dấu

Đánh dấu bắt buộc cho chú giải công cụ chỉ là một datathuộc tính và titletrên phần tử HTML mà bạn muốn có chú giải công cụ. Đánh dấu được tạo của chú giải công cụ khá đơn giản, mặc dù nó yêu cầu một vị trí (theo mặc định, được đặt thành topbởi plugin).

<!-- HTML to write -->
<a href="#" data-toggle="tooltip" title="Some tooltip text!">Hover over me</a>

<!-- Generated markup by the plugin -->
<div class="tooltip top" role="tooltip">
  <div class="tooltip-arrow"></div>
  <div class="tooltip-inner">
    Some tooltip text!
  </div>
</div>

Liên kết nhiều dòng

Đôi khi bạn muốn thêm một chú giải công cụ vào một siêu kết nối bao bọc nhiều dòng. Hành vi mặc định của plugin chú giải công cụ là căn giữa nó theo chiều ngang và chiều dọc. Thêm white-space: nowrap;vào neo của bạn để tránh điều này.

Chú giải công cụ trong nhóm nút, nhóm đầu vào và bảng yêu cầu cài đặt đặc biệt

Khi sử dụng chú giải công cụ trên các phần tử trong a .btn-grouphoặc an , .input-grouphoặc trên các phần tử liên quan đến bảng (,,,, ) , <td>bạn sẽ phải chỉ định tùy chọn ( được nêu bên dưới) để tránh các tác dụng phụ không mong muốn (chẳng hạn như phần tử ngày càng rộng và / hoặc mất các góc tròn khi chú giải công cụ được kích hoạt).<th><tr><thead><tbody><tfoot>container: 'body'

Đừng cố gắng hiển thị chú giải công cụ trên các phần tử ẩn

Việc gọi $(...).tooltip('show')khi phần tử đích là display: none;sẽ khiến chú giải công cụ được định vị không chính xác.

Chú giải công cụ có thể tiếp cận cho người dùng bàn phím và công nghệ hỗ trợ

Đối với người dùng điều hướng bằng bàn phím và cụ thể là người dùng công nghệ hỗ trợ, bạn chỉ nên thêm chú giải công cụ vào các phần tử có thể lấy tiêu điểm bằng bàn phím, chẳng hạn như liên kết, điều khiển biểu mẫu hoặc bất kỳ phần tử tùy ý nào có tabindex="0"thuộc tính.

Chú giải công cụ về các phần tử bị vô hiệu hóa yêu cầu các phần tử trình bao bọc

Để thêm chú giải công cụ vào một disabledhoặc .disabledphần tử, hãy đặt phần tử bên trong a <div>và áp dụng chú giải công cụ cho phần tử <div>đó.

Tùy chọn

Các tùy chọn có thể được chuyển 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 nối tên tùy chọn vào data-, như trong data-animation="".

Tên Loại hình Mặc định Sự mô tả
hoạt hình boolean thật Áp dụng chuyển đổi mờ dần CSS cho chú giải công cụ
thùng đựng hàng chuỗi | sai sai

Thêm chú giải công cụ vào một phần tử cụ thể. container: 'body'Ví dụ :. Tùy chọn này đặc biệt hữu ích ở chỗ nó cho phép bạn định vị chú giải công cụ trong luồng tài liệu gần phần tử kích hoạt - điều này sẽ ngăn chú giải công cụ trôi ra khỏi phần tử kích hoạt trong quá trình thay đổi kích thước cửa sổ.

sự chậm trễ số | sự vật 0

Độ trễ hiển thị và ẩn chú giải công cụ (mili giây) - không áp dụng cho loại kích hoạt thủ công

Nếu một số được cung cấp, độ trễ được áp dụng cho cả ẩn / hiện

Cấu trúc đối tượng là:delay: { "show": 500, "hide": 100 }

html boolean sai Chèn HTML vào chú giải công cụ. Nếu sai, phương thức của jQuery textsẽ được sử dụng để chèn nội dung vào DOM. Sử dụng văn bản nếu bạn lo lắng về các cuộc tấn công XSS.
vị trí chuỗi | hàm số 'đứng đầu'

Cách đặt chú giải công cụ - trên cùng | đáy | trái | phải không | Tự động.
Khi "tự động" được chỉ định, nó sẽ tự động định hướng lại chú giải công cụ. Ví dụ: nếu vị trí là "tự động bên trái", chú giải công cụ sẽ hiển thị bên trái khi có thể, nếu không, nó sẽ hiển thị bên phải.

Khi một hàm được sử dụng để xác định vị trí, nó được gọi với nút DOM của chú giải công cụ làm đối số đầu tiên và nút DOM phần tử kích hoạt là nút thứ hai của nó. Bối thiscảnh được đặt thành phiên bản chú giải công cụ.

bộ chọn sợi dây sai Nếu một bộ chọn được cung cấp, các đối tượng chú giải công cụ sẽ được ủy quyền cho các mục tiêu được chỉ định. Trên thực tế, điều này được sử dụng để cho phép nội dung HTML động có thêm chú giải công cụ. Xem điều nàymột ví dụ thông tin .
mẫu sợi dây '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'

HTML cơ sở để sử dụng khi tạo chú giải công cụ.

Chú giải công cụ titlesẽ được đưa vào .tooltip-inner.

.tooltip-arrowsẽ trở thành mũi tên của chú giải công cụ.

Phần tử bao bọc ngoài cùng phải có .tooltiplớp.

Tiêu đề chuỗi | hàm số ''

Giá trị tiêu đề mặc định nếu titlethuộc tính không có.

Nếu một hàm được cung cấp, nó sẽ được gọi với thistập tham chiếu của nó tới phần tử mà chú giải công cụ được gắn vào.

Kích hoạt sợi dây 'di chuột tiêu điểm' Cách kích hoạt chú giải công cụ - nhấp vào | di chuột qua | tiêu điểm | thủ công. Bạn có thể vượt qua nhiều lần kích hoạt; ngăn cách chúng bằng một khoảng trắng. manualkhông thể kết hợp với bất kỳ trình kích hoạt nào khác.
khung nhìn chuỗi | đối tượng | hàm số {selector: 'body', padding: 0}

Giữ chú giải công cụ trong giới hạn của phần tử này. Ví dụ: viewport: '#viewport'hoặc{ "selector": "#viewport", "padding": 0 }

Nếu một hàm được cung cấp, nó được gọi với nút DOM phần tử kích hoạt làm đối số duy nhất của nó. Bối thiscảnh được đặt thành phiên bản chú giải công cụ.

Thuộc tính dữ liệu cho các chú giải công cụ riêng lẻ

Ngoài ra, các tùy chọn cho chú giải công cụ riêng lẻ có thể được chỉ định thông qua việc sử dụng các thuộc tính dữ liệu, như đã giải thích ở trên.

Phương pháp

$().tooltip(options)

Đính kèm trình xử lý chú giải công cụ vào tập hợp phần tử.

.tooltip('show')

Tiết lộ chú giải công cụ của một phần tử. Trả về trình gọi trước khi chú giải công cụ thực sự được hiển thị (tức là trước khi shown.bs.tooltipsự kiện xảy ra). Đây được coi là cách kích hoạt "thủ công" của chú giải công cụ. Chú giải công cụ có tiêu đề dài bằng 0 không bao giờ được hiển thị.

$('#element').tooltip('show')

.tooltip('hide')

Ẩn chú giải công cụ của phần tử. Trả về trình gọi trước khi chú giải công cụ thực sự bị ẩn (tức là trước khi hidden.bs.tooltipsự kiện xảy ra). Đây được coi là cách kích hoạt "thủ công" của chú giải công cụ.

$('#element').tooltip('hide')

.tooltip('toggle')

Chuyển đổi chú giải công cụ của phần tử. Trả về trình gọi trước khi chú giải công cụ thực sự được hiển thị hoặc bị ẩn (nghĩa là trước khi sự kiện shown.bs.tooltiphoặc hidden.bs.tooltipsự kiện xảy ra). Đây được coi là cách kích hoạt "thủ công" của chú giải công cụ.

$('#element').tooltip('toggle')

.tooltip('destroy')

Ẩn và hủy chú giải công cụ của phần tử. Chú giải công cụ sử dụng ủy quyền (được tạo bằng cách sử dụng tùy selectorchọn ) không thể bị hủy riêng lẻ trên các phần tử kích hoạt con.

$('#element').tooltip('destroy')

Sự kiện

Loại sự kiện Sự mô tả
show.bs.tooltip Sự kiện này kích hoạt ngay lập tức khi showphương thức thể hiện được gọi.
show.bs.tooltip Sự kiện này được kích hoạt khi chú giải công cụ đã được hiển thị cho người dùng (sẽ đợi quá trình chuyển đổi CSS hoàn tất).
hide.bs.tooltip Sự kiện này được kích hoạt ngay lập tức khi hidephương thức thể hiện đã được gọi.
hidden.bs.tooltip Sự kiện này được kích hoạt khi chú giải công cụ hoàn tất bị ẩn khỏi người dùng (sẽ đợi quá trình chuyển đổi CSS hoàn tất).
insert.bs.tooltip Sự kiện này được kích hoạt sau show.bs.tooltipsự kiện khi mẫu chú giải công cụ đã được thêm vào DOM.
$('#myTooltip').on('hidden.bs.tooltip', function () {
  // do something…
})

Popovers popover.js

Thêm các lớp phủ nhỏ của nội dung, như trên iPad, vào bất kỳ phần tử nào để có thông tin phụ về nhà ở.

Các cửa sổ bật lên có cả tiêu đề và nội dung có độ dài bằng 0 sẽ không bao giờ được hiển thị.

Sự phụ thuộc của plugin

Các cửa sổ bật lên yêu cầu plugin chú giải công cụ phải được bao gồm trong phiên bản Bootstrap của bạn.

Chức năng chọn tham gia

Vì lý do hiệu suất, Tooltip và Popover data-apis được chọn tham gia, nghĩa là bạn phải tự khởi chạy chúng .

Một cách để khởi tạo tất cả các cửa sổ bật lên trên một trang là chọn chúng theo data-togglethuộc tính của chúng:

$(function () {
  $('[data-toggle="popover"]').popover()
})

Các cửa sổ bật lên trong nhóm nút, nhóm đầu vào và bảng yêu cầu cài đặt đặc biệt

Khi sử dụng cửa sổ bật lên trên các phần tử trong a .btn-grouphoặc an , .input-grouphoặc trên các phần tử liên quan đến bảng ( ,,,, ) <td>, bạn sẽ phải chỉ định tùy chọn ( được nêu dưới đây) để tránh các tác dụng phụ không mong muốn (chẳng hạn như phần tử ngày càng rộng và / hoặc mất các góc tròn khi cửa sổ bật lên được kích hoạt).<th><tr><thead><tbody><tfoot>container: 'body'

Đừng cố hiển thị cửa sổ bật lên trên các phần tử ẩn

Việc gọi $(...).popover('show')khi phần tử đích là display: none;sẽ khiến cửa sổ bật lên được định vị không chính xác.

Các cửa sổ bật lên trên các phần tử bị vô hiệu hóa yêu cầu các phần tử trình bao bọc

Để thêm cửa sổ bật lên vào một disabledhoặc .disabledphần tử, hãy đặt phần tử vào bên trong a <div>và áp dụng cửa sổ bật lên đó <div>thay thế.

Liên kết nhiều dòng

Đôi khi bạn muốn thêm một cửa sổ bật lên vào một siêu kết nối bao bọc nhiều dòng. Hành vi mặc định của plugin popover là căn giữa nó theo chiều ngang và chiều dọc. Thêm white-space: nowrap;vào neo của bạn để tránh điều này.

Các ví dụ

Cửa sổ bật lên tĩnh

Bốn tùy chọn có sẵn: trên cùng, bên phải, bên dưới và căn trái.

Popover top

Sed posuere consectetur est at lobortis. Aenean eu leo ​​quam. Bìm bìm biếc.

Bật lên bên phải

Sed posuere consectetur est at lobortis. Aenean eu leo ​​quam. Bìm bìm biếc.

Cửa sổ bật lên phía dưới

Sed posuere consectetur est at lobortis. Aenean eu leo ​​quam. Bìm bìm biếc.

Cửa sổ bật lên bên trái

Sed posuere consectetur est at lobortis. Aenean eu leo ​​quam. Bìm bìm biếc.

Bản thử trực tiếp

<button type="button" class="btn btn-lg btn-danger" data-toggle="popover" title="Popover title" data-content="And here's some amazing content. It's very engaging. Right?">Click to toggle popover</button>

Bốn hướng

<button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
  Popover on left
</button>

<button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
  Popover on top
</button>

<button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Vivamus
sagittis lacus vel augue laoreet rutrum faucibus.">
  Popover on bottom
</button>

<button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
  Popover on right
</button>

Bỏ qua trong lần nhấp tiếp theo

Sử dụng trình focuskích hoạt để loại bỏ cửa sổ bật lên vào lần nhấp tiếp theo mà người dùng thực hiện.

Đánh dấu cụ thể cần thiết để loại bỏ khi nhấp chuột tiếp theo

Để có hành vi phù hợp trên nhiều trình duyệt và đa nền tảng, bạn phải sử dụng thẻ <a>, không phải<button> thẻ và bạn cũng phải bao gồm các thuộc tính role="button"tabindex.

<a tabindex="0" class="btn btn-lg btn-danger" role="button" data-toggle="popover" data-trigger="focus" title="Dismissible popover" data-content="And here's some amazing content. It's very engaging. Right?">Dismissible popover</a>

Cách sử dụng

Bật cửa sổ bật lên qua JavaScript:

$('#example').popover(options)

Tùy chọn

Các tùy chọn có thể được chuyển 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 nối tên tùy chọn vào data-, như trong data-animation="".

Tên Loại hình Mặc định Sự mô tả
hoạt hình boolean thật Áp dụng chuyển đổi mờ dần CSS cho cửa sổ bật lên
thùng đựng hàng chuỗi | sai sai

Thêm cửa sổ bật lên cho một phần tử cụ thể. container: 'body'Ví dụ :. Tùy chọn này đặc biệt hữu ích ở chỗ nó cho phép bạn định vị cửa sổ bật lên trong luồng tài liệu gần phần tử kích hoạt - điều này sẽ ngăn cửa sổ bật lên trôi ra khỏi phần tử kích hoạt trong quá trình thay đổi kích thước cửa sổ.

Nội dung chuỗi | hàm số ''

Giá trị nội dung mặc định nếu data-contentthuộc tính không có.

Nếu một hàm được cung cấp, nó sẽ được gọi với thistập tham chiếu của nó tới phần tử mà cửa sổ bật lên được gắn vào.

sự chậm trễ số | sự vật 0

Độ trễ hiển thị và ẩn cửa sổ bật lên (mili giây) - không áp dụng cho loại kích hoạt thủ công

Nếu một số được cung cấp, độ trễ được áp dụng cho cả ẩn / hiện

Cấu trúc đối tượng là:delay: { "show": 500, "hide": 100 }

html boolean sai Chèn HTML vào cửa sổ bật lên. Nếu sai, phương thức của jQuery textsẽ được sử dụng để chèn nội dung vào DOM. Sử dụng văn bản nếu bạn lo lắng về các cuộc tấn công XSS.
vị trí chuỗi | hàm số 'bên phải'

Làm thế nào để định vị cửa sổ bật lên - trên cùng | đáy | trái | phải không | Tự động.
Khi "tự động" được chỉ định, nó sẽ tự động định hướng lại cửa sổ bật lên. Ví dụ: nếu vị trí là "tự động bên trái", cửa sổ bật lên sẽ hiển thị bên trái khi có thể, nếu không nó sẽ hiển thị bên phải.

Khi một hàm được sử dụng để xác định vị trí, nó được gọi với nút DOM popover làm đối số đầu tiên và nút DOM phần tử kích hoạt là nút thứ hai của nó. Bối thiscảnh được đặt thành phiên bản popover.

bộ chọn sợi dây sai Nếu một bộ chọn được cung cấp, các đối tượng bật lên sẽ được ủy quyền cho các mục tiêu được chỉ định. Trên thực tế, điều này được sử dụng để cho phép nội dung HTML động có thêm cửa sổ bật lên. Xem điều nàymột ví dụ thông tin .
mẫu sợi dây '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'

HTML cơ sở để sử dụng khi tạo cửa sổ bật lên.

Cửa sổ bật lên titlesẽ được tiêm vào .popover-title.

Cửa sổ bật lên contentsẽ được tiêm vào .popover-content.

.arrowsẽ trở thành mũi tên của cửa sổ bật lên.

Phần tử bao bọc ngoài cùng phải có .popoverlớp.

Tiêu đề chuỗi | hàm số ''

Giá trị tiêu đề mặc định nếu titlethuộc tính không có.

Nếu một hàm được cung cấp, nó sẽ được gọi với thistập tham chiếu của nó tới phần tử mà cửa sổ bật lên được gắn vào.

Kích hoạt sợi dây 'nhấp chuột' Cách kích hoạt cửa sổ bật lên - nhấp vào | di chuột qua | tiêu điểm | thủ công. Bạn có thể vượt qua nhiều lần kích hoạt; ngăn cách chúng bằng một khoảng trắng. manualkhông thể kết hợp với bất kỳ trình kích hoạt nào khác.
khung nhìn chuỗi | đối tượng | hàm số {selector: 'body', padding: 0}

Giữ cửa sổ bật lên trong giới hạn của phần tử này. Ví dụ: viewport: '#viewport'hoặc{ "selector": "#viewport", "padding": 0 }

Nếu một hàm được cung cấp, nó được gọi với nút DOM phần tử kích hoạt làm đối số duy nhất của nó. Bối thiscảnh được đặt thành phiên bản popover.

Thuộc tính dữ liệu cho các cửa sổ bật lên riêng lẻ

Các tùy chọn cho các cửa sổ bật lên riêng lẻ có thể được chỉ định theo cách khác thông qua việc sử dụng các thuộc tính dữ liệu, như đã giải thích ở trên.

Phương pháp

$().popover(options)

Khởi tạo các cửa sổ bật lên cho một tập hợp phần tử.

.popover('show')

Hiển thị cửa sổ bật lên của một phần tử. Trả về người gọi trước khi cửa sổ bật lên thực sự được hiển thị (tức là trước khi shown.bs.popoversự kiện xảy ra). Đây được coi là một "thủ công" kích hoạt cửa sổ bật lên. Các cửa sổ bật lên có cả tiêu đề và nội dung có độ dài bằng 0 sẽ không bao giờ được hiển thị.

$('#element').popover('show')

.popover('hide')

Ẩn cửa sổ bật lên của một phần tử. Trả về người gọi trước khi cửa sổ bật lên thực sự bị ẩn (tức là trước khi hidden.bs.popoversự kiện xảy ra). Đây được coi là một "thủ công" kích hoạt cửa sổ bật lên.

$('#element').popover('hide')

.popover('toggle')

Chuyển đổi cửa sổ bật lên của một phần tử. Trả về người gọi trước khi cửa sổ bật lên thực sự được hiển thị hoặc bị ẩn (tức là trước khi sự kiện shown.bs.popoverhoặc hidden.bs.popoversự kiện xảy ra). Đây được coi là một "thủ công" kích hoạt cửa sổ bật lên.

$('#element').popover('toggle')

.popover('destroy')

Ẩn và phá hủy cửa sổ bật lên của một phần tử. Các cửa sổ bật lên sử dụng ủy quyền (được tạo bằng cách sử dụng tùy selectorchọn ) không thể bị hủy riêng lẻ trên các phần tử kích hoạt con cháu.

$('#element').popover('destroy')

Sự kiện

Loại sự kiện Sự mô tả
show.bs.popover Sự kiện này kích hoạt ngay lập tức khi showphương thức thể hiện được gọi.
show.bs.popover Sự kiện này được kích hoạt khi cửa sổ bật lên hiển thị cho người dùng (sẽ đợi quá trình chuyển đổi CSS hoàn tất).
hide.bs.popover Sự kiện này được kích hoạt ngay lập tức khi hidephương thức thể hiện đã được gọi.
hidden.bs.popover Sự kiện này được kích hoạt khi cửa sổ bật lên hoàn tất bị ẩn khỏi người dùng (sẽ đợi quá trình chuyển đổi CSS hoàn tất).
insert.bs.popover Sự kiện này được kích hoạt sau show.bs.popoversự kiện khi mẫu cửa sổ bật lên đã được thêm vào DOM.
$('#myPopover').on('hidden.bs.popover', function () {
  // do something…
})

Thông báo cảnh báo alert.js

Cảnh báo mẫu

Thêm chức năng loại bỏ cho tất cả các thông báo cảnh báo với plugin này.

Khi sử dụng một .closenút, nó phải là nút con đầu tiên .alert-dismissiblevà không có nội dung văn bản nào có thể đứng trước nó trong phần đánh dấu.

Cách sử dụng

Chỉ cần thêm data-dismiss="alert"vào nút đóng của bạn để tự động cung cấp chức năng đóng cảnh báo. Đóng một cảnh báo sẽ xóa nó khỏi DOM.

<button type="button" class="close" data-dismiss="alert" aria-label="Close">
  <span aria-hidden="true">&times;</span>
</button>

Để cảnh báo của bạn sử dụng hoạt ảnh khi đóng, hãy đảm bảo rằng chúng có các lớp .fade.inlớp đã được áp dụng cho chúng.

Phương pháp

$().alert()

Làm cho cảnh báo lắng nghe các sự kiện nhấp chuột trên các phần tử con có data-dismiss="alert"thuộc tính. (Không cần thiết khi sử dụng tự động khởi tạo data-api.)

$().alert('close')

Đóng một cảnh báo bằng cách xóa nó khỏi DOM. Nếu các lớp .fade.incó trên phần tử, cảnh báo sẽ mờ dần trước khi nó bị xóa.

Sự kiện

Plugin cảnh báo của Bootstrap cho thấy một vài sự kiện để kết nối với chức năng cảnh báo.

Loại sự kiện Sự mô tả
close.bs.alert Sự kiện này kích hoạt ngay lập tức khi closephương thức thể hiện được gọi.
đã đóng.bs.alert Sự kiện này được kích hoạt khi cảnh báo đã được đóng (sẽ đợi quá trình chuyển đổi CSS hoàn tất).
$('#myAlert').on('closed.bs.alert', function () {
  // do something…
})

Buttons button.js

Làm được nhiều việc hơn với các nút. Các trạng thái nút điều khiển hoặc tạo nhóm nút cho nhiều thành phần hơn như thanh công cụ.

Khả năng tương thích trên nhiều trình duyệt

Firefox vẫn tồn tại trạng thái kiểm soát biểu mẫu (vô hiệu hóa và kiểm tra) qua các lần tải trang . Một giải pháp cho điều này là sử dụng autocomplete="off". Xem lỗi Mozilla # 654072 .

Trạng thái

Thêm data-loading-text="Loading..."để sử dụng trạng thái tải trên một nút.

Tính năng này không được dùng nữa kể từ v3.3.5 và đã bị xóa trong v4.

Sử dụng bất kỳ trạng thái nào bạn thích!

Vì mục đích của cuộc trình diễn này, chúng tôi đang sử dụng data-loading-text$().button('loading'), nhưng đó không phải là trạng thái duy nhất bạn có thể sử dụng. Xem thêm về điều này bên dưới trong $().button(string)tài liệu .

<button type="button" id="myButton" data-loading-text="Loading..." class="btn btn-primary" autocomplete="off">
  Loading state
</button>

<script>
  $('#myButton').on('click', function () {
    var $btn = $(this).button('loading')
    // business logic...
    $btn.button('reset')
  })
</script>

Chuyển đổi đơn

Thêm data-toggle="button"để kích hoạt bật tắt trên một nút duy nhất.

Các nút được chuyển đổi trước cần .activearia-pressed="true"

Đối với các nút được chuyển đổi trước, bạn phải thêm .activelớp và aria-pressed="true"thuộc tính cho buttonchính mình.

<button type="button" class="btn btn-primary" data-toggle="button" aria-pressed="false" autocomplete="off">
  Single toggle
</button>

Hộp kiểm / Đài

Thêm vào data-toggle="buttons"hộp .btn-groupkiểm có chứa hoặc các đầu vào radio để bật chuyển đổi theo các kiểu tương ứng.

Các tùy chọn được chọn trước cần.active

Đối với các tùy chọn đã chọn trước, bạn phải tự thêm .activelớp vào đầu vào của labelchính mình.

Trạng thái kiểm tra trực quan chỉ được cập nhật khi nhấp chuột

Nếu trạng thái đã chọn của nút hộp kiểm được cập nhật mà không kích hoạt clicksự kiện trên nút (ví dụ: thông qua <input type="reset">hoặc thông qua thiết lập thuộc checkedtính của đầu vào), bạn sẽ cần phải tự mình chuyển đổi .activelớp trên đầu vào label.

<div class="btn-group" data-toggle="buttons">
  <label class="btn btn-primary active">
    <input type="checkbox" autocomplete="off" checked> Checkbox 1 (pre-checked)
  </label>
  <label class="btn btn-primary">
    <input type="checkbox" autocomplete="off"> Checkbox 2
  </label>
  <label class="btn btn-primary">
    <input type="checkbox" autocomplete="off"> Checkbox 3
  </label>
</div>
<div class="btn-group" data-toggle="buttons">
  <label class="btn btn-primary active">
    <input type="radio" name="options" id="option1" autocomplete="off" checked> Radio 1 (preselected)
  </label>
  <label class="btn btn-primary">
    <input type="radio" name="options" id="option2" autocomplete="off"> Radio 2
  </label>
  <label class="btn btn-primary">
    <input type="radio" name="options" id="option3" autocomplete="off"> Radio 3
  </label>
</div>

Phương pháp

$().button('toggle')

Chuyển đổi trạng thái đẩy. Cung cấp cho nút giao diện như nó đã được kích hoạt.

$().button('reset')

Đặt lại trạng thái nút - hoán đổi văn bản thành văn bản gốc. Phương thức này không đồng bộ và trả về trước khi quá trình đặt lại thực sự hoàn tất.

$().button(string)

Hoán đổi văn bản thành bất kỳ trạng thái văn bản nào do dữ liệu xác định.

<button type="button" id="myStateButton" data-complete-text="finished!" class="btn btn-primary" autocomplete="off">
  ...
</button>

<script>
  $('#myStateButton').on('click', function () {
    $(this).button('complete') // button text will be "finished!"
  })
</script>

Thu gọn sụp đổ.js

Plugin linh hoạt sử dụng một số lớp để dễ dàng chuyển đổi hành vi.

Sự phụ thuộc của plugin

Thu gọn yêu cầu plugin chuyển tiếp phải được bao gồm trong phiên bản Bootstrap của bạn.

Thí dụ

Nhấp vào các nút bên dưới để hiển thị và ẩn một phần tử khác thông qua các thay đổi lớp:

  • .collapseẩn nội dung
  • .collapsingđược áp dụng trong quá trình chuyển đổi
  • .collapse.inhiển thị nội dung

Bạn có thể sử dụng liên kết có hrefthuộc tính hoặc nút có data-targetthuộc tính. Trong cả hai trường hợp, data-toggle="collapse"yêu cầu là bắt buộc.

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
<a class="btn btn-primary" role="button" data-toggle="collapse" href="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
  Link with href
</a>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
  Button with data-target
</button>
<div class="collapse" id="collapseExample">
  <div class="well">
    ...
  </div>
</div>

Ví dụ về Accordion

Mở rộng hành vi thu gọn mặc định để tạo đàn accordion với thành phần bảng điều khiển.

Phim hoạt hình chuyên nghiệp sáo ngữ, enim eiusmod cuộc sống cao cấp accamus terry richardson quảng cáo mực. 3 Wolf moon officia aute, bữa nửa buổi dolor trượt ván không cupidatat. Xe tải thực phẩm quinoa nesciunt labourum eiusmod. Brunch 3 Wolf moon tempor, sunt aliqua đặt một con chim trên đó mực cà phê nguồn gốc đơn nulla assnda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labre wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher Vice lomo. Leggings occaecat craft beer farm-to-table, raw denim synth nesciunt thẩm mỹ có thể bạn chưa từng nghe về chúng tố cáo VHS bền vững lao động.
Phim hoạt hình chuyên nghiệp sáo ngữ, enim eiusmod cuộc sống cao cấp accamus terry richardson quảng cáo mực. 3 Wolf moon officia aute, bữa nửa buổi dolor trượt ván không cupidatat. Xe tải thực phẩm quinoa nesciunt labourum eiusmod. Brunch 3 Wolf moon tempor, sunt aliqua đặt một con chim trên đó mực cà phê nguồn gốc đơn nulla assnda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labre wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher Vice lomo. Leggings occaecat craft beer farm-to-table, raw denim synth nesciunt thẩm mỹ có thể bạn chưa từng nghe về chúng tố cáo VHS bền vững lao động.
Phim hoạt hình chuyên nghiệp sáo ngữ, enim eiusmod cuộc sống cao cấp accamus terry richardson quảng cáo mực. 3 Wolf moon officia aute, bữa nửa buổi dolor trượt ván không cupidatat. Xe tải thực phẩm quinoa nesciunt labourum eiusmod. Brunch 3 Wolf moon tempor, sunt aliqua đặt một con chim trên đó mực cà phê nguồn gốc đơn nulla assnda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labre wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher Vice lomo. Leggings occaecat craft beer farm-to-table, raw denim synth nesciunt thẩm mỹ có thể bạn chưa từng nghe về chúng tố cáo VHS bền vững lao động.
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
  <div class="panel panel-default">
    <div class="panel-heading" role="tab" id="headingOne">
      <h4 class="panel-title">
        <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
          Collapsible Group Item #1
        </a>
      </h4>
    </div>
    <div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
  <div class="panel panel-default">
    <div class="panel-heading" role="tab" id="headingTwo">
      <h4 class="panel-title">
        <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
          Collapsible Group Item #2
        </a>
      </h4>
    </div>
    <div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
  <div class="panel panel-default">
    <div class="panel-heading" role="tab" id="headingThree">
      <h4 class="panel-title">
        <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
          Collapsible Group Item #3
        </a>
      </h4>
    </div>
    <div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
</div>

Cũng có thể hoán đổi .panel-bodys với .list-groups.

  • Bootply
  • Một itmus ac folatein
  • Eros thứ hai

Làm cho các điều khiển mở rộng / thu gọn có thể truy cập được

Đảm bảo thêm aria-expandedvào phần tử điều khiển. Thuộc tính này xác định rõ ràng trạng thái hiện tại của phần tử có thể thu gọn đối với trình đọc màn hình và các công nghệ hỗ trợ tương tự. Nếu phần tử có thể thu gọn được đóng theo mặc định, phần tử đó phải có giá trị là aria-expanded="false". Nếu bạn đã đặt phần tử có thể thu gọn được mở theo mặc định bằng cách sử dụng inlớp, hãy đặt aria-expanded="true"trên điều khiển thay thế. Plugin sẽ tự động chuyển đổi thuộc tính này dựa trên việc phần tử có thể thu gọn đã được mở hay đóng hay chưa.

Ngoài ra, nếu phần tử điều khiển của bạn đang nhắm mục tiêu đến một phần tử có thể thu gọn - tức là data-targetthuộc tính đang trỏ đến một idbộ chọn - bạn có thể thêm phần tử bổ sungaria-controls thuộc tính bổ sung vào phần tử điều khiển, chứa thuộc tính của phần tử có idthể thu gọn. Trình đọc màn hình hiện đại và các công nghệ hỗ trợ tương tự sử dụng thuộc tính này để cung cấp cho người dùng các phím tắt bổ sung để điều hướng trực tiếp đến chính phần tử có thể thu gọn.

Cách sử dụng

Plugin thu gọn sử dụng một số lớp để xử lý công việc nặng nhọc:

  • .collapseẩn nội dung
  • .collapse.inhiển thị nội dung
  • .collapsingđược thêm vào khi quá trình chuyển đổi bắt đầu và bị xóa khi kết thúc

Các lớp này có thể được tìm thấy trongcomponent-animations.less .

Qua các thuộc tính dữ liệu

Chỉ cần thêm data-toggle="collapse"và a data-targetvào phần tử để tự động gán quyền kiểm soát phần tử có thể thu gọn. Thuộc data-targettính chấp nhận một bộ chọn CSS để áp dụng tính năng thu gọn. Đảm bảo thêm lớp collapsevào phần tử có thể thu gọn. Nếu bạn muốn nó mở mặc định, hãy thêm lớp bổ sungin .

Để thêm quản lý nhóm giống như đàn accordion vào điều khiển có thể thu gọn, hãy thêm thuộc tính dữ liệu data-parent="#selector". Tham khảo bản demo để thấy điều này trong hoạt động.

Qua JavaScript

Bật theo cách thủ công với:

$('.collapse').collapse()

Tùy chọn

Các tùy chọn có thể được chuyển 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 nối tên tùy chọn vào data-, như trong data-parent="".

Tên loại hình mặc định sự mô tả
cha mẹ bộ chọn sai Nếu một bộ chọn được cung cấp, thì tất cả các phần tử có thể thu gọn trong phần tử gốc được chỉ định sẽ bị đóng khi mục có thể thu gọn này được hiển thị. (tương tự như hành vi của đàn accordion truyền thống - điều này phụ thuộc vào panellớp)
chuyển đổi boolean thật Chuyển đổi phần tử có thể thu gọn khi gọi

Phương pháp

.collapse(options)

Kích hoạt nội dung của bạn dưới dạng phần tử có thể thu gọn. Chấp nhận một tùy chọn tùy chọn object.

$('#myCollapsible').collapse({
  toggle: false
})

.collapse('toggle')

Chuyển đổi phần tử có thể thu gọn thành hiển thị hoặc ẩn. Trả về trình gọi trước khi phần tử thu gọn thực sự được hiển thị hoặc bị ẩn (tức là trước khi sự kiện shown.bs.collapsehoặc hidden.bs.collapsesự kiện xảy ra).

.collapse('show')

Hiển thị một phần tử có thể thu gọn. Trả về trình gọi trước khi phần tử thu gọn thực sự được hiển thị (tức là trước khi shown.bs.collapsesự kiện xảy ra).

.collapse('hide')

Ẩn một phần tử có thể thu gọn. Trả về trình gọi trước khi phần tử thu gọn thực sự bị ẩn (tức là trước khi hidden.bs.collapsesự kiện xảy ra).

Sự kiện

Lớp thu gọn của Bootstrap cho thấy một vài sự kiện để kết nối vào chức năng thu gọn.

Loại sự kiện Sự mô tả
show.bs.collapse Sự kiện này kích hoạt ngay lập tức khi showphương thức thể hiện được gọi.
show.bs.collapse Sự kiện này được kích hoạt khi một phần tử thu gọn được hiển thị cho người dùng (sẽ đợi quá trình chuyển đổi CSS hoàn tất).
hide.bs.collapse Sự kiện này được kích hoạt ngay lập tức khi hidephương thức đã được gọi.
hidden.bs.collapse Sự kiện này được kích hoạt khi một phần tử thu gọn đã bị ẩn khỏi người dùng (sẽ đợi quá trình chuyển đổi CSS hoàn tất).
$('#myCollapsible').on('hidden.bs.collapse', function () {
  // do something…
})

Carousel carousel.js

Một thành phần trình chiếu để quay vòng qua các phần tử, như băng chuyền. Băng chuyền lồng nhau không được hỗ trợ.

<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
  <!-- Indicators -->
  <ol class="carousel-indicators">
    <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
    <li data-target="#carousel-example-generic" data-slide-to="1"></li>
    <li data-target="#carousel-example-generic" data-slide-to="2"></li>
  </ol>

  <!-- Wrapper for slides -->
  <div class="carousel-inner" role="listbox">
    <div class="item active">
      <img src="..." alt="...">
      <div class="carousel-caption">
        ...
      </div>
    </div>
    <div class="item">
      <img src="..." alt="...">
      <div class="carousel-caption">
        ...
      </div>
    </div>
    ...
  </div>

  <!-- Controls -->
  <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
    <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
    <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

Chú thích tùy chọn

Thêm chú thích vào trang trình bày của bạn một cách dễ dàng với .carousel-captionphần tử bên trong bất kỳ .item. Chỉ đặt khoảng bất kỳ HTML tùy chọn nào trong đó và nó sẽ được căn chỉnh và định dạng tự động.

<div class="item">
  <img src="..." alt="...">
  <div class="carousel-caption">
    <h3>...</h3>
    <p>...</p>
  </div>
</div>

Nhiều băng chuyền

Băng chuyền yêu cầu sử dụng idhộp chứa ở ngoài cùng (cái .carousel) để điều khiển băng chuyền hoạt động bình thường. Khi thêm nhiều băng chuyền hoặc khi thay đổi băng chuyền id, hãy nhớ cập nhật các điều khiển có liên quan.

Qua các thuộc tính dữ liệu

Sử dụng các thuộc tính dữ liệu để dễ dàng kiểm soát vị trí của băng chuyền. data-slidechấp nhận các từ khóa prevhoặc nextthay đổi vị trí trang chiếu so với vị trí hiện tại của nó. Ngoài ra, sử dụng data-slide-tođể chuyển một chỉ mục trang trình bày thô vào băng chuyền data-slide-to="2", chuyển vị trí trang trình bày sang một chỉ mục cụ thể bắt đầu bằng0 .

Thuộc data-ride="carousel"tính được sử dụng để đánh dấu một băng chuyền là hoạt ảnh bắt đầu khi tải trang. Nó không thể được sử dụng kết hợp với khởi tạo JavaScript rõ ràng (thừa và không cần thiết) của cùng một băng chuyền.

Qua JavaScript

Gọi băng chuyền theo cách thủ công với:

$('.carousel').carousel()

Các tùy chọn có thể được chuyển 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 nối tên tùy chọn vào data-, như trong data-interval="".

Tên loại hình mặc định sự mô tả
khoảng thời gian con số 5000 Khoảng thời gian để trì hoãn giữa việc tự động quay một mục. Nếu sai, băng chuyền sẽ không tự động xoay vòng.
tạm ngừng chuỗi | vô giá trị "bay lượn" Nếu được đặt thành "hover", hãy tạm dừng quay băng chuyền mouseentervà tiếp tục quay băng chuyền mouseleave. Nếu được đặt thành null, di chuột qua băng chuyền sẽ không tạm dừng.
bọc boolean thật Cho dù băng chuyền sẽ quay vòng liên tục hay có các điểm dừng khó.
bàn phím boolean thật Liệu băng chuyền có phản ứng với các sự kiện bàn phím hay không.

Khởi tạo băng chuyền với một tùy chọn tùy chọn objectvà bắt đầu quay vòng qua các mục.

$('.carousel').carousel({
  interval: 2000
})

Xoay qua các mục trong băng chuyền từ trái sang phải.

Ngăn băng chuyền di chuyển qua các mục.

Xoay băng chuyền thành một khung cụ thể (dựa trên 0, tương tự như một mảng).

Chuyển sang mục trước đó.

Chuyển sang mục tiếp theo.

Lớp băng chuyền của Bootstrap cho thấy hai sự kiện để kết nối vào chức năng băng chuyền.

Cả hai sự kiện đều có các thuộc tính bổ sung sau:

  • direction: Hướng băng chuyền đang trượt (một trong hai "left"hoặc "right").
  • relatedTarget: Phần tử DOM đang được trượt vào vị trí như một mục đang hoạt động.

Tất cả các sự kiện băng chuyền được kích hoạt tại chính băng chuyền (tức là tại <div class="carousel">).

Loại sự kiện Sự mô tả
slide.bs.carousel Sự kiện này kích hoạt ngay lập tức khi slidephương thức thể hiện được gọi.
slid.bs.carousel Sự kiện này được kích hoạt khi băng chuyền đã hoàn thành quá trình chuyển đổi trang chiếu của nó.
$('#myCarousel').on('slide.bs.carousel', function () {
  // do something…
})

Liên kết affix.js

Thí dụ

Plugin liên kết bật position: fixed;và tắt, mô phỏng hiệu ứng được tìm thấy với position: sticky;. Điều khoản phụ ở bên phải là bản demo trực tiếp của plugin đính kèm.


Cách sử dụng

Sử dụng plugin đính kèm thông qua các thuộc tính dữ liệu hoặc theo cách thủ công với JavaScript của riêng bạn. Trong cả hai trường hợp, bạn phải cung cấp CSS để định vị và chiều rộng của nội dung được dán.

Lưu ý: Không sử dụng plugin gắn trên phần tử có trong phần tử được định vị tương đối, chẳng hạn như cột được kéo hoặc đẩy, do lỗi kết xuất Safari .

Định vị qua CSS

Plugin liên kết chuyển đổi giữa ba lớp, mỗi lớp đại diện cho một trạng thái cụ thể .affix:, .affix-top.affix-bottom. Bạn phải cung cấp các kiểu, ngoại trừ position: fixed;bật.affix , cho chính các lớp này (độc lập với plugin này) để xử lý các vị trí thực tế.

Đây là cách hoạt động của plugin đính kèm:

  1. Để bắt đầu, plugin thêm.affix-top để cho biết phần tử đang ở vị trí cao nhất. Tại thời điểm này, không cần định vị CSS.
  2. Cuộn qua phần tử bạn muốn gắn sẽ kích hoạt việc dán thực tế. Đây là nơi .affixthay thế .affix-topvà thiết lập position: fixed;(được cung cấp bởi Bootstrap's CSS).
  3. Nếu độ lệch đáy được xác định, cuộn qua nó sẽ thay thế .affixbằng .affix-bottom. Vì hiệu số là tùy chọn, cài đặt một yêu cầu bạn phải đặt CSS thích hợp. Trong trường hợp này, hãy bổ sung position: absolute;khi cần thiết. Plugin sử dụng thuộc tính dữ liệu hoặc tùy chọn JavaScript để xác định vị trí của phần tử từ đó.

Làm theo các bước trên để đặt CSS của bạn cho một trong các tùy chọn sử dụng bên dưới.

Qua các thuộc tính dữ liệu

Để dễ dàng thêm hành vi liên kết vào bất kỳ phần tử nào, chỉ cần thêm data-spy="affix"vào phần tử bạn muốn theo dõi. Sử dụng hiệu số để xác định thời điểm chuyển đổi ghim của một phần tử.

<div data-spy="affix" data-offset-top="60" data-offset-bottom="200">
  ...
</div>

Qua JavaScript

Gọi plugin liên kết qua JavaScript:

$('#myAffix').affix({
  offset: {
    top: 100,
    bottom: function () {
      return (this.bottom = $('.footer').outerHeight(true))
    }
  }
})

Tùy chọn

Các tùy chọn có thể được chuyển 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 nối tên tùy chọn vào data-, như trong data-offset-top="200".

Tên loại hình mặc định sự mô tả
bù lại số | chức năng | sự vật 10 Điểm ảnh để bù đắp từ màn hình khi tính toán vị trí của cuộn. Nếu cung cấp một số duy nhất, phần bù sẽ được áp dụng theo cả hướng trên và dưới. Để cung cấp một độ lệch duy nhất, dưới cùng và trên cùng, chỉ cần cung cấp một đối tượng offset: { top: 10 }hoặc offset: { top: 10, bottom: 5 }. Sử dụng một hàm khi bạn cần tính toán động một phần bù.
Mục tiêu bộ chọn | nút | phần tử jQuery đối windowtượng Chỉ định phần tử đích của phụ tố.

Phương pháp

.affix(options)

Kích hoạt nội dung của bạn dưới dạng nội dung gắn liền. Chấp nhận một tùy chọn tùy chọn object.

$('#myAffix').affix({
  offset: 15
})

.affix('checkPosition')

Tính toán lại trạng thái của dấu dựa trên kích thước, vị trí và vị trí cuộn của các phần tử có liên quan. Các .affix, .affix-top.affix-bottomcác lớp được thêm vào hoặc xóa khỏi nội dung được gắn theo trạng thái mới. Phương thức này cần được gọi bất cứ khi nào kích thước của nội dung được gắn hoặc phần tử đích được thay đổi, để đảm bảo vị trí chính xác của nội dung được gắn.

$('#myAffix').affix('checkPosition')

Sự kiện

Plugin liên kết của Bootstrap cho thấy một vài sự kiện để kết nối vào chức năng gắn kết.

Loại sự kiện Sự mô tả
affix.bs.affix Sự kiện này kích hoạt ngay lập tức trước khi phần tử được gắn.
affixed.bs.affix Sự kiện này được kích hoạt sau khi phần tử đã được gắn.
affix-top.bs.affix Sự kiện này kích hoạt ngay lập tức trước khi phần tử được gắn trên cùng.
affixed-top.bs.affix Sự kiện này được kích hoạt sau khi phần tử đã được gắn trên cùng.
affix-bottom.bs.affix Sự kiện này kích hoạt ngay lập tức trước khi phần tử được gắn ở dưới cùng.
affixed-bottom.bs.affix Sự kiện này được kích hoạt sau khi phần tử đã được gắn ở dưới cùng.