ภาพรวม

บุคคลหรือรวบรวม

ปลั๊กอินสามารถรวมเป็นรายบุคคลได้ (โดยใช้ไฟล์แต่ละ*.jsไฟล์ของ Bootstrap) หรือทั้งหมดพร้อมกัน (โดยใช้bootstrap.jsหรือย่อbootstrap.min.jsขนาด )

การใช้ JavaScript ที่คอมไพล์แล้ว

ทั้งสองbootstrap.jsและbootstrap.min.jsมีปลั๊กอินทั้งหมดในไฟล์เดียว รวมไว้เพียงอันเดียว

การพึ่งพาปลั๊กอิน

ปลั๊กอินและส่วนประกอบ CSS บางตัวขึ้นอยู่กับปลั๊กอินอื่นๆ หากคุณรวมปลั๊กอินแต่ละรายการ ตรวจสอบให้แน่ใจว่าได้ตรวจสอบการขึ้นต่อกันเหล่านี้ในเอกสาร โปรดทราบว่าปลั๊กอินทั้งหมดขึ้นอยู่กับ jQuery (ซึ่งหมายความว่าต้องรวม jQuery ก่อนไฟล์ปลั๊กอิน) ปรึกษาเราbower.jsonเพื่อดูว่ารองรับ jQuery เวอร์ชันใด

แอตทริบิวต์ข้อมูล

คุณสามารถใช้ปลั๊กอิน Bootstrap ทั้งหมดผ่าน Markup API ได้โดยไม่ต้องเขียน JavaScript แม้แต่บรรทัดเดียว นี่คือ API ระดับเฟิร์สคลาสของ Bootstrap และควรพิจารณาเป็นอันดับแรกเมื่อใช้ปลั๊กอิน

ที่กล่าวว่า ในบางสถานการณ์ อาจเป็นการดีที่จะปิดฟังก์ชันนี้ ดังนั้นเราจึงจัดเตรียมความสามารถในการปิดใช้งาน API แอตทริบิวต์ข้อมูลโดยยกเลิกการเชื่อมโยงเหตุการณ์ทั้งหมดในเนมสเปซของเอกสารdata-apiด้วย ดูเหมือนว่านี้:

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

อีกวิธีหนึ่งในการกำหนดเป้าหมายปลั๊กอินเฉพาะ ให้รวมชื่อของปลั๊กอินเป็นเนมสเปซพร้อมกับเนมสเปซ data-api ดังนี้:

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

เพียงหนึ่งปลั๊กอินต่อองค์ประกอบผ่านแอตทริบิวต์ข้อมูล

อย่าใช้แอตทริบิวต์ข้อมูลจากปลั๊กอินหลายตัวในองค์ประกอบเดียวกัน ตัวอย่างเช่น ปุ่มไม่สามารถมีคำแนะนำเครื่องมือและสลับเป็นโมดอลได้ ในการทำสิ่งนี้ให้สำเร็จ ให้ใช้องค์ประกอบการห่อ

API แบบเป็นโปรแกรม

เรายังเชื่อว่าคุณควรจะสามารถใช้ปลั๊กอิน Bootstrap ทั้งหมดผ่าน JavaScript API ได้อย่างหมดจด API สาธารณะทั้งหมดเป็นเมธอดเดียวที่เชื่อมต่อได้ และส่งคืนคอลเล็กชันที่ดำเนินการ

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

เมธอดทั้งหมดควรยอมรับอ็อบเจ็กต์ตัวเลือกที่เป็นตัวเลือก สตริงที่กำหนดเป้าหมายเมธอดเฉพาะ หรือไม่มีเลย (ซึ่งเริ่มต้นปลั๊กอินด้วยการทำงานเริ่มต้น):

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

ปลั๊กอินแต่ละตัวยังเปิดเผยคอนสตรัคเตอร์ดิบใน พร็อพเพ อร์Constructorตี้: $.fn.popover.Constructorหากคุณต้องการรับอินสแตนซ์ของปลั๊กอินบางตัว ให้ดึงข้อมูลโดยตรงจากองค์ประกอบ$('[rel="popover"]').data('popover'):

การตั้งค่าเริ่มต้น

คุณสามารถเปลี่ยนการตั้งค่าเริ่มต้นสำหรับปลั๊กอินโดยแก้ไขConstructor.DEFAULTSวัตถุของปลั๊กอิน:

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

ไม่มีความขัดแย้ง

บางครั้ง จำเป็นต้องใช้ปลั๊กอิน Bootstrap กับเฟรมเวิร์ก UI อื่นๆ ในสถานการณ์เหล่านี้ การชนกันของเนมสเปซอาจเกิดขึ้นในบางครั้ง หากเกิดเหตุการณ์นี้ขึ้น คุณสามารถเรียก.noConflictใช้ปลั๊กอินที่คุณต้องการคืนค่า

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

เหตุการณ์

Bootstrap จัดเตรียมเหตุการณ์ที่กำหนดเองสำหรับการกระทำเฉพาะของปลั๊กอินส่วนใหญ่ โดยทั่วไป สิ่งเหล่านี้มาในรูปแบบกริยาแบบ infinitive และ past participle โดยที่ infinitive (เช่นshow) จะถูกทริกเกอร์เมื่อเริ่มต้นเหตุการณ์ และรูปแบบกริยาที่ผ่านมา (ex. shown) จะถูกทริกเกอร์เมื่อการดำเนินการเสร็จสิ้น

ณ 3.0.0 เหตุการณ์ Bootstrap ทั้งหมดมีเนมสเปซ

เหตุการณ์ infinitive ทั้งหมดมีpreventDefaultฟังก์ชันการทำงาน สิ่งนี้ทำให้สามารถหยุดการดำเนินการก่อนที่จะเริ่ม

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

น้ำยาฆ่าเชื้อ

คำแนะนำเครื่องมือและ Popovers ใช้น้ำยาฆ่าเชื้อในตัวของเราเพื่อล้างตัวเลือกที่ยอมรับ HTML

ค่าเริ่มต้นwhiteListมีดังต่อไปนี้:

var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i
var DefaultWhitelist = {
  // Global attributes allowed on any supplied element below.
  '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
  a: ['target', 'href', 'title', 'rel'],
  area: [],
  b: [],
  br: [],
  col: [],
  code: [],
  div: [],
  em: [],
  hr: [],
  h1: [],
  h2: [],
  h3: [],
  h4: [],
  h5: [],
  h6: [],
  i: [],
  img: ['src', 'alt', 'title', 'width', 'height'],
  li: [],
  ol: [],
  p: [],
  pre: [],
  s: [],
  small: [],
  span: [],
  sub: [],
  sup: [],
  strong: [],
  u: [],
  ul: []
}

หากคุณต้องการเพิ่มค่าใหม่ให้กับค่าเริ่มต้นนี้whiteListคุณสามารถดำเนินการดังต่อไปนี้:

var myDefaultWhiteList = $.fn.tooltip.Constructor.DEFAULTS.whiteList

// To allow table elements
myDefaultWhiteList.table = []

// To allow td elements and data-option attributes on td elements
myDefaultWhiteList.td = ['data-option']

// You can push your custom regex to validate your attributes.
// Be careful about your regular expressions being too lax
var myCustomRegex = /^data-my-app-[\w-]+/
myDefaultWhiteList['*'].push(myCustomRegex)

หากคุณต้องการเลี่ยงการฆ่าเชื้อของเรา เนื่องจากคุณต้องการใช้ห้องสมุดเฉพาะ เช่นDOMPurifyคุณควรดำเนินการดังต่อไปนี้:

$('#yourTooltip').tooltip({
  sanitizeFn: function (content) {
    return DOMPurify.sanitize(content)
  }
})

เบราว์เซอร์ที่ไม่มีdocument.implementation.createHTMLDocument

ในกรณีที่เบราว์เซอร์ไม่รองรับdocument.implementation.createHTMLDocumentเช่น Internet Explorer 8 ฟังก์ชันฆ่าเชื้อในตัวจะส่งกลับ HTML ตามที่เป็นอยู่

หากคุณต้องการดำเนินการฆ่าเชื้อในกรณีนี้ โปรดระบุsanitizeFnและใช้ไลบรารีภายนอกเช่นDOMPurify

หมายเลขเวอร์ชัน

เวอร์ชันของปลั๊กอิน jQuery ของ Bootstrap แต่ละเวอร์ชันสามารถเข้าถึงได้ผ่านVERSIONคุณสมบัติของตัวสร้างของปลั๊กอิน ตัวอย่างเช่น สำหรับปลั๊กอินคำแนะนำเครื่องมือ:

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

ไม่มีทางเลือกพิเศษเมื่อปิดใช้งาน JavaScript

ปลั๊กอินของ Bootstrap จะไม่ถอยกลับโดยเฉพาะอย่างยิ่งเมื่อปิดการใช้งาน JavaScript หากคุณสนใจเกี่ยวกับประสบการณ์ของผู้ใช้ในกรณีนี้ ใช้<noscript>เพื่ออธิบายสถานการณ์ (และวิธีเปิดใช้งาน JavaScript อีกครั้ง) ให้กับผู้ใช้ของคุณ และ/หรือเพิ่มทางเลือกที่คุณกำหนดเอง

ห้องสมุดบุคคลที่สาม

Bootstrap ไม่สนับสนุนไลบรารี JavaScript ของบุคคลที่สามเช่น Prototype หรือ jQuery UI อย่างเป็นทางการ แม้ว่า.noConflictเหตุการณ์เนมสเปซและเนมสเปซอาจมีปัญหาความเข้ากันได้ซึ่งคุณต้องแก้ไขด้วยตัวเอง

Transitions Transition.js

เกี่ยวกับการเปลี่ยนภาพ

สำหรับเอฟเฟกต์การเปลี่ยนอย่างง่าย ให้รวมtransition.jsครั้งเดียวพร้อมกับไฟล์ JS อื่น หากคุณกำลังใช้คอมไพล์แล้ว (หรือย่อเล็กสุด) bootstrap.jsคุณไม่จำเป็นต้องรวมสิ่งนี้—มีอยู่แล้วในนั้น

อะไรอยู่ข้างใน

Transition.js เป็นผู้ช่วยพื้นฐานสำหรับtransitionEndเหตุการณ์เช่นเดียวกับโปรแกรมจำลองการเปลี่ยน CSS ปลั๊กอินนี้ใช้โดยปลั๊กอินอื่นๆ เพื่อตรวจสอบการสนับสนุนการเปลี่ยน CSS และเพื่อตรวจจับการเปลี่ยนผ่านที่ค้างอยู่

ปิดการใช้งานทรานซิชั่น

การเปลี่ยนผ่านสามารถปิดใช้งานได้ทั่วโลกโดยใช้ข้อมูลโค้ด JavaScript ต่อไปนี้ ซึ่งต้องโหลดหลังจาก โหลด transition.js(หรือbootstrap.jsหรือbootstrap.min.jsแล้วแต่กรณี):

$.support.transition = false

Modals modal.js

Modals มีความคล่องตัว แต่มีความยืดหยุ่น พร้อมข้อความโต้ตอบพร้อมฟังก์ชันขั้นต่ำที่จำเป็นและค่าเริ่มต้นที่ชาญฉลาด

ไม่รองรับโมดอลแบบเปิดหลายอัน

อย่าเปิดโมดอลในขณะที่อีกอันยังมองเห็นได้ การแสดงมากกว่าหนึ่งโมดอลในแต่ละครั้งต้องใช้โค้ดที่กำหนดเอง

ตำแหน่งมาร์กอัปโมดอล

พยายามวางโค้ด HTML ของโมดอลในตำแหน่งระดับบนสุดในเอกสารของคุณเสมอ เพื่อหลีกเลี่ยงองค์ประกอบอื่นๆ ที่ส่งผลต่อลักษณะที่ปรากฏและ/หรือฟังก์ชันของโมดอล

คำเตือนเกี่ยวกับอุปกรณ์พกพา

มีข้อแม้บางประการเกี่ยวกับการใช้โมดอลบนอุปกรณ์มือถือ ดูเอกสารสนับสนุนเบราว์เซอร์ของเราสำหรับรายละเอียด

เนื่องจาก HTML5 กำหนดความหมายของมันautofocusแอตทริบิวต์ HTML จึงไม่มีผลใน Bootstrap modals เพื่อให้ได้ผลเช่นเดียวกัน ให้ใช้ JavaScript ที่กำหนดเอง:

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

ตัวอย่าง

ตัวอย่างคงที่

โมดอลที่แสดงผลพร้อมส่วนหัว เนื้อหา และชุดของการดำเนินการในส่วนท้าย

<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 -->

สาธิตสด

สลับโมดอลผ่าน JavaScript โดยคลิกที่ปุ่มด้านล่าง มันจะเลื่อนลงและจางลงจากด้านบนของหน้า

<!-- 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>

ทำให้ modals เข้าถึงได้

อย่าลืมเพิ่มrole="dialog"และaria-labelledby="..."อ้างอิงชื่อโมดอล ถึง.modalและrole="document"ตัว.modal-dialogมันเอง

นอกจากนี้ คุณอาจให้คำอธิบายของกล่องโต้ตอบโมดอลของคุณด้วยaria-describedbyon.modal

การฝังวิดีโอ YouTube

การฝังวิดีโอ YouTube ใน modals ต้องใช้ JavaScript เพิ่มเติมที่ไม่อยู่ใน Bootstrap เพื่อหยุดเล่นโดยอัตโนมัติและอีกมากมาย ดูโพสต์ Stack Overflow ที่เป็นประโยชน์สำหรับข้อมูลเพิ่มเติม

ขนาดเสริม

Modals มีสองขนาดให้เลือก ใช้ได้ผ่านคลาสตัวปรับแต่งที่จะวางบนไฟล์.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" 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" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel">
  <div class="modal-dialog modal-sm" role="document">
    <div class="modal-content">
      ...
    </div>
  </div>
</div>

ลบแอนิเมชั่น

สำหรับโมดอลที่ปรากฏแทนที่จะดูจางๆ ให้ลบ.fadeคลาสออกจากมาร์กอัปโมดอลของคุณ

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

การใช้ระบบกริด

ในการใช้ประโยชน์จากระบบกริด Bootstrap ภายในโมดอล เพียงแค่ซ้อน.rows ภายใน.modal-bodyแล้วใช้คลาสระบบกริดปกติ

<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 -->

มีปุ่มมากมายที่เรียกใช้ modal เดียวกัน แต่มีเนื้อหาต่างกันเล็กน้อยหรือไม่? ใช้event.relatedTargetและแอตทริบิวต์HTMLdata-* (อาจใช้ jQuery ) เพื่อเปลี่ยนแปลงเนื้อหาของโมดอลขึ้นอยู่กับว่าคลิกปุ่มใด ดูเอกสาร Modal Events สำหรับรายละเอียดเกี่ยวกับrelatedTarget,

...ปุ่มเพิ่มเติม...
<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)
})

การใช้งาน

ปลั๊กอินโมดอลจะสลับเนื้อหาที่ซ่อนอยู่ของคุณตามต้องการ ผ่านแอตทริบิวต์ข้อมูลหรือ JavaScript นอกจากนี้ยังเพิ่ม.modal-openเพื่อ<body>แทนที่พฤติกรรมการเลื่อนเริ่มต้น และสร้าง a .modal-backdropเพื่อให้พื้นที่การคลิกสำหรับการยกเลิกโมดอลที่แสดงเมื่อคลิกนอกโมดอล

ผ่านแอตทริบิวต์ข้อมูล

เปิดใช้งาน modal โดยไม่ต้องเขียน JavaScript ตั้งค่าdata-toggle="modal"บนองค์ประกอบตัวควบคุม เช่น ปุ่ม พร้อมกับ a data-target="#foo"หรือhref="#foo"เพื่อกำหนดเป้าหมายเป็นโมดอลเฉพาะเพื่อสลับ

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

ผ่านจาวาสคริปต์

เรียก modal ด้วย id myModalด้วย JavaScript บรรทัดเดียว:

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

ตัวเลือก

ตัวเลือกสามารถส่งผ่านแอตทริบิวต์ข้อมูลหรือ JavaScript สำหรับแอ็ตทริบิวต์ data ให้ผนวกชื่ออ็อพชันต่อท้ายdata-เช่นเดียวกับในdata-backdrop="".

ชื่อ พิมพ์ ค่าเริ่มต้น คำอธิบาย
ฉากหลัง บูลีนหรือสตริง'static' จริง รวมถึงองค์ประกอบฉากหลังที่เป็นกิริยาช่วย หรือระบุstaticฉากหลังที่ไม่ปิดโมดอลเมื่อคลิก
แป้นพิมพ์ บูลีน จริง ปิดโมดอลเมื่อกดปุ่ม Escape
แสดง บูลีน จริง แสดงโมดอลเมื่อเริ่มต้น
ระยะไกล เส้นทาง เท็จ

ตัวเลือกนี้เลิกใช้ตั้งแต่ v3.3.0 และถูกลบใน v4 แล้ว เราขอแนะนำให้ใช้เทมเพลตฝั่งไคลเอ็นต์หรือเฟรมเวิร์กการเชื่อมโยงข้อมูล หรือเรียกjQuery.loadด้วยตนเอง

หากมีการระบุ URL ระยะไกลเนื้อหาจะถูกโหลดครั้งเดียวload ผ่าน เมธอดของ jQuery และใส่เข้าไปใน .modal-contentdiv หากคุณกำลังใช้ data-api คุณสามารถใช้hrefแอตทริบิวต์เพื่อระบุแหล่งที่มาระยะไกลได้ ตัวอย่างนี้แสดงไว้ด้านล่าง:

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

วิธีการ

เปิดใช้งานเนื้อหาของคุณเป็นกิริยาช่วย ยอมรับตัวเลือกobjectเสริม

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

สลับโมดอลด้วยตนเอง กลับไปยังผู้โทรก่อนที่โมดอลจะแสดงหรือซ่อนอยู่จริง (กล่าวคือ ก่อนที่ เหตุการณ์ shown.bs.modalหรือhidden.bs.modalเหตุการณ์จะเกิดขึ้น)

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

เปิดโมดอลด้วยตนเอง กลับไปยังผู้เรียกก่อนที่จะแสดงกิริยาจริง (กล่าวคือ ก่อนที่shown.bs.modalเหตุการณ์จะเกิดขึ้น)

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

ซ่อนโมดอลด้วยตนเอง กลับไปยังผู้โทรก่อนที่โมดอลจะถูกซ่อนจริง ๆ (กล่าวคือ ก่อนที่hidden.bs.modalเหตุการณ์จะเกิดขึ้น)

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

ปรับตำแหน่งของโมดอลใหม่เพื่อตอบโต้แถบเลื่อนในกรณีที่ควรปรากฏขึ้น ซึ่งจะทำให้โมดัลกระโดดไปทางซ้าย

จำเป็นเฉพาะเมื่อความสูงของโมดอลเปลี่ยนแปลงขณะเปิดอยู่

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

เหตุการณ์

โมดอลคลาสของ Bootstrap เปิดเผยเหตุการณ์สองสามเหตุการณ์สำหรับการเชื่อมต่อกับฟังก์ชันโมดอล

เหตุการณ์โมดอลทั้งหมดถูกไล่ออกจากกิริยาช่วย (เช่น ที่<div class="modal">)

ประเภทงาน คำอธิบาย
show.bs.modal เหตุการณ์นี้จะเริ่มทำงานทันทีเมื่อมีshowการเรียกเมธอดของอินสแตนซ์ หากเกิดจากการคลิก องค์ประกอบที่คลิกจะพร้อมใช้งานเป็นrelatedTargetคุณสมบัติของเหตุการณ์
แสดง.bs.modal เหตุการณ์นี้เริ่มทำงานเมื่อผู้ใช้มองเห็นโมดอลได้ (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์) หากเกิดจากการคลิก องค์ประกอบที่คลิกจะพร้อมใช้งานเป็นrelatedTargetคุณสมบัติของเหตุการณ์
hide.bs.modal เหตุการณ์นี้เริ่มทำงานทันทีเมื่อhideมีการเรียกเมธอดของอินสแตนซ์
hidden.bs.modal เหตุการณ์นี้เริ่มทำงานเมื่อโมดอลถูกซ่อนจากผู้ใช้เสร็จสิ้น (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์)
Load.bs.modal เหตุการณ์นี้เริ่มทำงานเมื่อโมดอลโหลดเนื้อหาโดยใช้remoteตัวเลือก
$('#myModal').on('hidden.bs.modal', function (e) {
  // do something...
})

ดรอปดาวน์dropdown.js

เพิ่มเมนูแบบเลื่อนลงได้เกือบทุกอย่างด้วยปลั๊กอินง่ายๆ นี้ รวมถึงแถบนำทาง แท็บ และยาเม็ด

ภายในแถบนำทาง

ภายในเม็ด

ผ่านแอตทริบิวต์ข้อมูลหรือ JavaScript ปลั๊กอินแบบเลื่อนลงจะสลับเนื้อหาที่ซ่อนอยู่ (เมนูแบบเลื่อนลง) โดยการสลับ.openคลาสในรายการหลัก

บนอุปกรณ์มือถือ การเปิดดรอปดาวน์จะเพิ่ม a .dropdown-backdropเป็นพื้นที่สำหรับปิดเมนูดรอปดาวน์เมื่อแตะนอกเมนู ซึ่งเป็นข้อกำหนดสำหรับการสนับสนุน iOS ที่เหมาะสม ซึ่งหมายความว่าการเปลี่ยนจากเมนูดรอปดาวน์แบบเปิดเป็นเมนูดรอปดาวน์อื่นจำเป็นต้องแตะพิเศษบนอุปกรณ์เคลื่อนที่

หมายเหตุ: data-toggle="dropdown"แอตทริบิวต์นี้ใช้สำหรับการปิดเมนูแบบเลื่อนลงที่ระดับแอปพลิเคชัน ดังนั้นจึงควรใช้แอตทริบิวต์นี้เสมอ

ผ่านแอตทริบิวต์ข้อมูล

เพิ่มdata-toggle="dropdown"ในลิงก์หรือปุ่มเพื่อสลับรายการแบบเลื่อนลง

<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>

หากต้องการคง URL ไว้ด้วยปุ่มลิงก์ ให้ใช้data-targetแอตทริบิวต์แทน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>

ผ่านจาวาสคริปต์

เรียกดรอปดาวน์ผ่าน JavaScript:

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

data-toggle="dropdown"ยังต้องการ

ไม่ว่าคุณจะเรียกดรอปดาวน์ของคุณผ่าน JavaScript หรือใช้ data-api แทน คุณdata-toggle="dropdown"จำเป็นต้องแสดงบนองค์ประกอบทริกเกอร์ของดรอปดาวน์เสมอ

ไม่มี

สลับเมนูดรอปดาวน์ของแถบนำทางที่กำหนดหรือการนำทางแบบแท็บ

เหตุการณ์แบบเลื่อนลงทั้งหมดเริ่มต้นที่.dropdown-menuองค์ประกอบหลักของ '

เหตุการณ์แบบเลื่อนลงทั้งหมดมีrelatedTargetคุณสมบัติ ซึ่งมีค่าเป็นองค์ประกอบการสลับจุดยึด

ประเภทงาน คำอธิบาย
show.bs.dropdown เหตุการณ์นี้จะเริ่มทำงานทันทีเมื่อมีการเรียกวิธีการแสดงอินสแตนซ์
แสดง.bs.dropdown เหตุการณ์นี้เริ่มทำงานเมื่อผู้ใช้มองเห็นเมนูแบบเลื่อนลงได้ (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์)
hide.bs.dropdown เหตุการณ์นี้เริ่มทำงานทันทีเมื่อมีการเรียกวิธีการซ่อนอินสแตนซ์
hidden.bs.dropdown เหตุการณ์นี้เริ่มทำงานเมื่อผู้ใช้ซ่อนรายการแบบหล่นลงเสร็จแล้ว (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์)
$('#myDropdown').on('show.bs.dropdown', function () {
  // do something…
})

ScrollSpy scrollspy.js

ตัวอย่างในแถบนำทาง

ปลั๊กอิน ScrollSpy ใช้สำหรับอัปเดตเป้าหมายการนำทางโดยอัตโนมัติตามตำแหน่งการเลื่อน เลื่อนพื้นที่ด้านล่างแถบนำทางและดูการเปลี่ยนแปลงชั้นเรียนที่ใช้งานอยู่ รายการย่อยแบบเลื่อนลงจะถูกเน้นด้วย

@อ้วน

โฆษณากางเกงเลคกิ้ง, บรันช์ id art ปาร์ตี้สุดเหวี่ยง Pitchfork yr enim lo-fi ก่อนที่พวกเขาจะขายหมด qui Tumblr จักรยานจากฟาร์มสู่โต๊ะมีสิทธิ์อะไรก็ตาม เสื้อคาร์ดิแกน Anim keffiyeh บูธภาพถ่ายของ Velit seitan mcsweeney 3 wolf moon irure เสื้อกันหนาว Cosby กางเกงยีนส์ขาสั้น เสื้อกันหนาวมีฮู้ด williamsburg ที่คุณอาจไม่เคยได้ยินชื่อมาก่อน และกองทุนคาร์ดิแกน trust fund culpa biodiesel wes anderson aesthetic. Nihil สักข้อกล่าวหา, เครดิตประชดไบโอดีเซล keffiyeh ช่างฝีมือ ullamco ผลสืบเนื่อง.

@mdo

สเก็ตบอร์ดหนวด Veniam marfa, หนวดเครา adipisicing fugiat velit ฟรีแกนเครา aliqua cupidatat mcsweeney's vero. Cupidatat four loko nisi, ea helvetica nulla carles. รถบรรทุกอาหารเสื้อสเวตเตอร์ลายสัก cosby, mcsweeney's quis non freegan vinyl Lo-fi เวส แอนเดอร์สัน +1 sartorial คาร์ลส์ไม่ใช่การออกกำลังกายเพื่อความงาม บรู๊คลิน adipisicing เบียร์ฝีมือรอง keytar deserunt.

หนึ่ง

Occaecat commodo aliqua delectus. Fap craft beer deserunt สเก็ตบอร์ด ea. สิทธิจักรยาน Lomo adipisicing banh mi, velit ea sunt next level locavore single-origin coffee in magna veniam. ไวนิล ID ชีวิตสูง echo park consequat quis aliquip banh mi pitchfork Vero VHS ดีที่สุดแล้ว Consectetur nisi DIY กระเป๋าสะพายข้าง minim Cred ex in แพ็ก iphone ที่ยั่งยืน deelectus consectetur

สอง

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, culpa messenger bag marfa ไม่ว่าจะรถบรรทุกอาหารอะไรก็ตาม Sapiente synth id สมมติ Locavore sed helvetica cliche ประชดประชัน, Thundercats ที่คุณอาจไม่เคยได้ยินเกี่ยวกับพวกเขาเป็นผลจาก hoodie ที่ปราศจากกลูเตน lo-fi fap aliquip ลองใช้สถานที่ก่อนที่พวกเขาจะขายหมด เทอร์รี่ ริชาร์ดสัน บรันช์ที่เชี่ยวชาญในบรันช์ nesciunt quis cosby เสื้อกันหนาว pariatur keffiyeh ut helvetica ช่างฝีมือ คาร์ดิแกน คราฟท์เบียร์ seitan ผ้ากำมะหยี่สำเร็จรูป VHS แชมเบรย์ ลาบอริส เทมปอร์ เวเนียม แอนิม มอลลิต มินิม คอมโมโด อุลแลมโก้ ธันเดอร์แคทส์

การใช้งาน

ต้องใช้ Bootstrap nav

ขณะนี้ Scrollspy ต้องการการใช้คอมโพเนนต์ Bootstrap navเพื่อการไฮไลต์ลิงก์ที่ใช้งานอยู่อย่างเหมาะสม

ต้องระบุเป้าหมาย ID ที่แก้ไขได้

ลิงก์ Navbar ต้องมีเป้าหมาย ID ที่แก้ไขได้ ตัวอย่างเช่น<a href="#home">home</a>ต้องสอดคล้องกับบางสิ่งใน DOM <div id="home"></div>เช่น

องค์ประกอบที่ ไม่ใช่:visibleเป้าหมายถูกละเว้น

องค์ประกอบเป้าหมายที่ไม่:visibleเป็นไปตาม jQueryจะถูกละเว้นและรายการนำทางที่เกี่ยวข้องจะไม่ถูกเน้น

ต้องการตำแหน่งสัมพัทธ์

ไม่ว่าจะใช้วิธีการใช้งานอย่างไร scrollspy จำเป็นต้องใช้position: relative;กับองค์ประกอบที่คุณกำลังสอดแนม ในกรณีส่วนใหญ่ นี่คือ<body>. เมื่อ scrollspying บนองค์ประกอบอื่นที่ไม่ใช่<body>ตรวจสอบให้แน่ใจว่าได้heightตั้งค่าและoverflow-y: scroll;นำไปใช้

ผ่านแอตทริบิวต์ข้อมูล

หากต้องการเพิ่มลักษณะการทำงานของ scrollspy ให้กับการนำทางบนแถบด้านบนของคุณอย่างง่ายดาย ให้เพิ่มdata-spy="scroll"องค์ประกอบที่คุณต้องการสอดแนม (โดยทั่วไปแล้วจะเป็น<body>) จากนั้นเพิ่มdata-targetแอตทริบิวต์ด้วย ID หรือคลาสขององค์ประกอบหลักขององค์ประกอบ.navBootstrap

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>

ผ่านจาวาสคริปต์

หลังจากเพิ่มposition: relative;ใน CSS ของคุณแล้ว ให้เรียก scrollspy ผ่าน JavaScript:

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

วิธีการ

.scrollspy('refresh')

เมื่อใช้ scrollspy ร่วมกับการเพิ่มหรือลบองค์ประกอบออกจาก DOM คุณจะต้องเรียกวิธีการรีเฟรชดังนี้:

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

ตัวเลือก

ตัวเลือกสามารถส่งผ่านแอตทริบิวต์ข้อมูลหรือ JavaScript สำหรับแอ็ตทริบิวต์ data ให้ผนวกชื่ออ็อพชันต่อท้ายdata-เช่นเดียวกับในdata-offset="".

ชื่อ พิมพ์ ค่าเริ่มต้น คำอธิบาย
offset ตัวเลข 10 พิกเซลจะชดเชยจากด้านบนเมื่อคำนวณตำแหน่งของการเลื่อน

เหตุการณ์

ประเภทงาน คำอธิบาย
activate.bs.scrollspy เหตุการณ์นี้จะเริ่มทำงานเมื่อใดก็ตามที่รายการใหม่เปิดใช้งานโดย scrollspy
$('#myScrollspy').on('activate.bs.scrollspy', function () {
  // do something…
})

แท็บสลับ tab.js

แท็บตัวอย่าง

เพิ่มฟังก์ชันแท็บแบบไดนามิกที่รวดเร็วเพื่อเปลี่ยนผ่านบานหน้าต่างเนื้อหาในเครื่อง แม้กระทั่งผ่านเมนูแบบเลื่อนลง ไม่รองรับแท็บที่ซ้อนกัน

ผ้ายีนส์ดิบที่คุณอาจไม่เคยได้ยินชื่อกางเกงยีนส์ออสติน Nesciunt Tofu stumptown aliqua, น้ำยาทำความสะอาดซินธ์มาสเตอร์แบบย้อนยุค หนวด cliche ชั่วคราว วิลเลียมส์เบิร์ก คาร์ล วีแกน เฮลเวติกา Reprehenderit คนขายเนื้อ retro keffiyeh dreamcatcher synth เสื้อกันหนาว Cosby eu banh mi, qui irure terry richardson ex squid Aliquip placeat ซัลเวีย cillum iphone. Seitan aliquip quis คาร์ดิแกน American apparel, 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.

ขยายการนำทางแบบแท็บ

ปลั๊กอินนี้ขยายองค์ประกอบการนำทางแบบแท็บเพื่อเพิ่มพื้นที่แท็บได้

การใช้งาน

เปิดใช้งานแท็บแบบแท็บได้ผ่าน JavaScript (ต้องเปิดใช้งานแต่ละแท็บแยกกัน):

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

คุณสามารถเปิดใช้งานแต่ละแท็บได้หลายวิธี:

$('#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)

มาร์กอัป

คุณสามารถเปิดใช้งานการนำทางแท็บหรือยาเม็ดโดยไม่ต้องเขียน JavaScript ใด ๆ โดยเพียงแค่ระบุdata-toggle="tab"หรือdata-toggle="pill"บนองค์ประกอบ การเพิ่มnavและnav-tabsคลาสลงในแท็บ จะใช้การ จัดสไตล์แท็บul Bootstrap ขณะที่การเพิ่มคลาสและ จะใช้ การจัดสไตล์ยาเม็ด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>

เอฟเฟกต์จาง

หากต้องการให้แท็บจางลง ให้เพิ่ม.fadeแต่ละ.tab-paneไฟล์ บานหน้าต่างแท็บแรกยังต้อง.inทำให้เนื้อหาเริ่มต้นมองเห็นได้

<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>

วิธีการ

$().tab

เปิดใช้งานองค์ประกอบแท็บและคอนเทนเนอร์เนื้อหา แท็บควรมี a data-targetหรือ การhrefกำหนดเป้าหมายโหนดคอนเทนเนอร์ใน DOM ในตัวอย่างข้างต้น แท็บต่างๆ คือแท็บที่<a>มีdata-toggle="tab"แอตทริบิวต์

.tab('show')

เลือกแท็บที่กำหนดและแสดงเนื้อหาที่เกี่ยวข้อง แท็บอื่นๆ ที่เลือกไว้ก่อนหน้านี้จะไม่ถูกเลือกและเนื้อหาที่เกี่ยวข้องจะถูกซ่อนไว้ กลับไปยังผู้โทรก่อนที่บานหน้าต่างแท็บจะแสดงขึ้นจริง (เช่น ก่อนที่shown.bs.tabเหตุการณ์จะเกิดขึ้น)

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

เหตุการณ์

เมื่อแสดงแท็บใหม่ เหตุการณ์จะเริ่มขึ้นตามลำดับต่อไปนี้:

  1. hide.bs.tab(บนแท็บที่ใช้งานอยู่ในปัจจุบัน)
  2. show.bs.tab(บนแท็บที่จะแสดง)
  3. hidden.bs.tab(ในแท็บที่ใช้งานก่อนหน้านี้ อันเดียวกับhide.bs.tabเหตุการณ์)
  4. shown.bs.tab(บนแท็บเพิ่งแสดงที่เพิ่งเปิดใช้งาน อันเดียวกับshow.bs.tabเหตุการณ์)

หากไม่มีแท็บใดเปิดใช้งานอยู่ เหตุการณ์ hide.bs.tabและhidden.bs.tabจะไม่เริ่มทำงาน

ประเภทงาน คำอธิบาย
show.bs.tab เหตุการณ์นี้เริ่มทำงานในการแสดงแท็บ แต่ก่อนที่จะมีการแสดงแท็บใหม่ ใช้event.targetและevent.relatedTargetเพื่อกำหนดเป้าหมายแท็บที่ใช้งานอยู่และแท็บที่ใช้งานอยู่ก่อนหน้า (ถ้ามี) ตามลำดับ
แสดง.bs.tab เหตุการณ์นี้เริ่มทำงานในการแสดงแท็บหลังจากแสดงแท็บแล้ว ใช้event.targetและevent.relatedTargetเพื่อกำหนดเป้าหมายแท็บที่ใช้งานอยู่และแท็บที่ใช้งานอยู่ก่อนหน้า (ถ้ามี) ตามลำดับ
hide.bs.tab เหตุการณ์นี้เริ่มทำงานเมื่อมีการแสดงแท็บใหม่ (และทำให้แท็บที่ใช้งานอยู่ก่อนหน้านี้ถูกซ่อนไว้) ใช้event.targetและevent.relatedTargetเพื่อกำหนดเป้าหมายแท็บที่ใช้งานอยู่ในปัจจุบันและแท็บใหม่ที่จะใช้งานเร็วๆ นี้ ตามลำดับ
hidden.bs.tab เหตุการณ์นี้เริ่มทำงานหลังจากแสดงแท็บใหม่ (และทำให้แท็บที่ใช้งานอยู่ก่อนหน้านี้ถูกซ่อนไว้) ใช้event.targetและevent.relatedTargetเพื่อกำหนดเป้าหมายแท็บที่ใช้งานอยู่ก่อนหน้าและแท็บใหม่ที่ใช้งานอยู่ตามลำดับ
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
  e.target // newly activated tab
  e.relatedTarget // previous active tab
})

Tooltips tooltip.js

แรงบันดาลใจจากปลั๊กอิน jQuery.tipsy ที่ยอดเยี่ยมที่เขียนโดย Jason Frame; คำแนะนำเครื่องมือเป็นเวอร์ชันที่อัปเดตซึ่งไม่ต้องใช้รูปภาพ ใช้ CSS3 สำหรับภาพเคลื่อนไหว และแอตทริบิวต์ข้อมูลสำหรับพื้นที่จัดเก็บชื่อในเครื่อง

คำแนะนำเครื่องมือที่มีชื่อความยาวเป็นศูนย์จะไม่แสดงขึ้น

ตัวอย่าง

วางเมาส์เหนือลิงก์ด้านล่างเพื่อดูคำแนะนำเครื่องมือ:

กางเกงรัดรูป ระดับต่อไป keffiyeh คุณอาจไม่เคยได้ยินเกี่ยวกับพวกเขา บูธภาพถ่ายเคราผ้ายีนส์ดิบ letterpress กระเป๋าถือวีแก้น stumptown เครื่องแต่งกายแบบอเมริกันแบบ 8 บิตของ mcsweeney fixie ที่ยั่งยืนจากฟาร์มสู่โต๊ะมีผ้าแชมเบรย์ไวนิลริชาร์ดสันเทอร์รี่ Beard stumptown, เสื้อสเวตเตอร์ถัก banh mi lomo Thundercats เต้าหู้ไบโอดีเซล วิลเลี่ยมส์เบิร์ก มาร์ฟา, แชมเบรย์วีแก้นคลีนส์สี่โลโค แมคสวีนีย์ ช่างฝีมือที่น่าขันจริงๆไม่ว่า จะเป็นคีย์ตาร์ใดก็ตาม ทวิตเตอร์ ของ Austin จากฟาร์มถึงโต๊ะซึ่งจัดการไวรัสกาแฟต้นกำเนิดเดียวจากแหล่งเดียวของ freegan cred ฟรีแกน

เคล็ดลับเครื่องมือแบบคงที่

มีสี่ตัวเลือก: จัดตำแหน่งบน ขวา ล่าง และซ้าย

สี่ทิศ

<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>

ฟังก์ชั่นการเลือกใช้งาน

ด้วยเหตุผลด้านประสิทธิภาพ Tooltip และ Popover data-apis เป็นแบบเลือกใช้ ซึ่งหมายความว่าคุณต้องเริ่มต้นด้วยตนเอง

วิธีหนึ่งในการเริ่มต้นคำแนะนำเครื่องมือทั้งหมดบนหน้าคือการเลือกตามdata-toggleแอตทริบิวต์:

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

การใช้งาน

ปลั๊กอินคำแนะนำเครื่องมือสร้างเนื้อหาและมาร์กอัปตามต้องการ และโดยค่าเริ่มต้นจะวางคำแนะนำเครื่องมือหลังองค์ประกอบทริกเกอร์

ทริกเกอร์คำแนะนำเครื่องมือผ่าน JavaScript:

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

มาร์กอัป

มาร์กอัปที่จำเป็นสำหรับคำแนะนำเครื่องมือเป็นเพียงdataแอตทริบิวต์และtitleในองค์ประกอบ HTML ที่คุณต้องการให้มีคำแนะนำเครื่องมือ มาร์กอัปของคำแนะนำเครื่องมือที่สร้างขึ้นนั้นค่อนข้างง่าย แม้ว่าจะต้องมีตำแหน่ง (โดยค่าเริ่มต้น กำหนดtopโดยปลั๊กอิน)

<!-- 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>

ลิงค์หลายบรรทัด

บางครั้งคุณต้องการเพิ่มคำแนะนำเครื่องมือไปยังไฮเปอร์ลิงก์ที่ตัดหลายบรรทัด ลักษณะการทำงานเริ่มต้นของปลั๊กอินคำแนะนำเครื่องมือคือการจัดกึ่งกลางในแนวนอนและแนวตั้ง เพิ่มwhite-space: nowrap;จุดยึดของคุณเพื่อหลีกเลี่ยงสิ่งนี้

คำแนะนำเครื่องมือในกลุ่มปุ่ม กลุ่มอินพุต และตารางต้องมีการตั้งค่าพิเศษ

เมื่อใช้คำแนะนำเครื่องมือกับองค์ประกอบภายใน a .btn-groupหรือ an .input-groupหรือในองค์ประกอบที่เกี่ยวข้องกับตาราง ( <td>, <th>, <tr>, <thead>, <tbody>, <tfoot>) คุณจะต้องระบุตัวเลือกcontainer: 'body'(เอกสารด้านล่าง) เพื่อหลีกเลี่ยงผลข้างเคียงที่ไม่ต้องการ (เช่น องค์ประกอบที่ขยายกว้างขึ้นและ/ หรือสูญเสียมุมโค้งมนเมื่อเปิดใช้งานคำแนะนำเครื่องมือ)

อย่าพยายามแสดงคำแนะนำเครื่องมือในองค์ประกอบที่ซ่อนอยู่

การ เรียก$(...).tooltip('show')ใช้เมื่อองค์ประกอบเป้าหมายคือdisplay: none;จะทำให้คำแนะนำเครื่องมืออยู่ในตำแหน่งที่ไม่ถูกต้อง

คำแนะนำเครื่องมือที่สามารถเข้าถึงได้สำหรับผู้ใช้คีย์บอร์ดและเทคโนโลยีช่วยเหลือ

สำหรับผู้ใช้ที่นำทางด้วยแป้นพิมพ์ และโดยเฉพาะอย่างยิ่งผู้ใช้เทคโนโลยีอำนวยความสะดวก คุณควรเพิ่มคำแนะนำเครื่องมือให้กับองค์ประกอบที่เน้นคีย์บอร์ดเท่านั้น เช่น ลิงก์ ตัวควบคุมฟอร์ม หรือองค์ประกอบใดๆ ที่มีtabindex="0"แอตทริบิวต์ ตามอำเภอใจ

คำแนะนำเครื่องมือเกี่ยวกับองค์ประกอบที่ปิดใช้งานต้องใช้องค์ประกอบแบบห่อ

ในการเพิ่มคำแนะนำเครื่องมือให้กับ a disabledหรือ.disabledองค์ประกอบ ให้ใส่องค์ประกอบภายใน a <div>และใช้คำแนะนำเครื่องมือกับสิ่งนั้น<div>แทน

ตัวเลือก

ตัวเลือกสามารถส่งผ่านแอตทริบิวต์ข้อมูลหรือ JavaScript สำหรับแอ็ตทริบิวต์ data ให้ผนวกชื่ออ็อพชันต่อท้ายdata-เช่นเดียวกับในdata-animation="".

โปรดทราบว่าด้วยเหตุผลด้านความปลอดภัยsanitize, sanitizeFnและwhiteListตัวเลือกไม่สามารถระบุได้โดยใช้แอตทริบิวต์ข้อมูล

ชื่อ พิมพ์ ค่าเริ่มต้น คำอธิบาย
แอนิเมชั่น บูลีน จริง ใช้ CSS Fade Transition กับคำแนะนำเครื่องมือ
คอนเทนเนอร์ สตริง | เท็จ เท็จ

เพิ่มคำแนะนำเครื่องมือต่อท้ายองค์ประกอบเฉพาะ ตัวอย่าง: container: 'body'. ตัวเลือกนี้มีประโยชน์อย่างยิ่ง โดยจะช่วยให้คุณสามารถวางตำแหน่งคำแนะนำเครื่องมือในโฟลว์ของเอกสารใกล้กับองค์ประกอบการทริกเกอร์ ซึ่งจะป้องกันไม่ให้คำแนะนำเครื่องมือลอยออกจากองค์ประกอบที่ทริกเกอร์ในระหว่างการปรับขนาดหน้าต่าง

ล่าช้า หมายเลข | วัตถุ 0

ความล่าช้าในการแสดงและซ่อนคำแนะนำเครื่องมือ (ms) - ใช้ไม่ได้กับประเภททริกเกอร์ด้วยตนเอง

หากมีการระบุตัวเลข การหน่วงเวลาจะใช้กับทั้งซ่อน/แสดง

โครงสร้างวัตถุคือ:delay: { "show": 500, "hide": 100 }

html บูลีน เท็จ แทรก HTML ลงในคำแนะนำเครื่องมือ textหากเป็นเท็จ จะใช้วิธีของ jQuery เพื่อแทรกเนื้อหาลงใน DOM ใช้ข้อความหากคุณกังวลเกี่ยวกับการโจมตี XSS
ตำแหน่ง สตริง | การทำงาน 'สูงสุด'

วิธีวางตำแหน่งคำแนะนำเครื่องมือ - บนสุด | ด้านล่าง | ซ้าย | ขวา | อัตโนมัติ
เมื่อระบุ "อัตโนมัติ" ระบบจะเปลี่ยนทิศทางคำแนะนำเครื่องมือแบบไดนามิก ตัวอย่างเช่น หากตำแหน่งเป็น "ซ้ายอัตโนมัติ" คำแนะนำเครื่องมือจะแสดงไปทางซ้ายเมื่อเป็นไปได้ ไม่เช่นนั้นจะแสดงคำแนะนำทางขวา

เมื่อใช้ฟังก์ชันเพื่อกำหนดตำแหน่ง ฟังก์ชันนี้จะถูกเรียกโดยมีโหนด DOM ของคำแนะนำเครื่องมือเป็นอาร์กิวเมนต์แรก และโหนด DOM ที่ทริกเกอร์องค์ประกอบเป็นโหนดที่สอง thisบริบทถูกตั้งค่าเป็นอินสแตนซ์คำแนะนำเครื่องมือ

ตัวเลือก สตริง เท็จ หากมีตัวเลือก อ็อบเจ็กต์คำแนะนำเครื่องมือจะถูกส่งไปยังเป้าหมายที่ระบุ ในทางปฏิบัติ จะใช้เพื่อใช้คำแนะนำเครื่องมือกับองค์ประกอบ DOM ที่เพิ่มแบบไดนามิก ( jQuery.onการสนับสนุน) ดูสิ่งนี้และตัวอย่างข้อมูล
แม่แบบ สตริง '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'

HTML พื้นฐานที่จะใช้เมื่อสร้างคำแนะนำเครื่องมือ

คำแนะนำเครื่องมือtitleจะถูกฉีดเข้าไปในไฟล์.tooltip-inner.

.tooltip-arrowจะกลายเป็นลูกศรของคำแนะนำเครื่องมือ

องค์ประกอบ wrapper นอกสุดควรมี.tooltipคลาส

ชื่อ สตริง | การทำงาน ''

ค่าเริ่มต้นของชื่อหากไม่มีtitleแอตทริบิวต์

หากมีการกำหนดฟังก์ชัน ฟังก์ชันนั้นจะถูกเรียกโดยthisตั้งค่าการอ้างอิงไปยังองค์ประกอบที่แนบคำแนะนำเครื่องมือ

สิ่งกระตุ้น สตริง 'เลื่อนโฟกัส' วิธีการเรียกคำแนะนำเครื่องมือ - คลิก | โฉบ | โฟกัส | คู่มือ. คุณอาจส่งทริกเกอร์หลายตัว แยกพวกเขาด้วยช่องว่าง manualไม่สามารถรวมกับทริกเกอร์อื่นได้
วิวพอร์ต สตริง | วัตถุ | การทำงาน { ตัวเลือก: 'body', padding: 0 }

เก็บคำแนะนำเครื่องมือไว้ภายในขอบเขตขององค์ประกอบนี้ ตัวอย่าง: viewport: '#viewport'or{ "selector": "#viewport", "padding": 0 }

หากมีการกำหนดฟังก์ชัน ฟังก์ชันจะถูกเรียกด้วยโหนด DOM องค์ประกอบที่ทริกเกอร์เป็นอาร์กิวเมนต์เดียว thisบริบทถูกตั้งค่าเป็นอินสแตนซ์คำแนะนำเครื่องมือ

ฆ่าเชื้อ บูลีน จริง เปิดหรือปิดการฆ่าเชื้อ หากเปิดใช้งาน'template'และ'content'ตัว'title'เลือกต่างๆ จะถูกฆ่าเชื้อ
whiteList วัตถุ ค่าเริ่มต้น ออบเจ็กต์ที่มีแอตทริบิวต์และแท็กที่อนุญาต
ฆ่าเชื้อFn null | การทำงาน โมฆะ ที่นี่คุณสามารถจัดหาฟังก์ชันฆ่าเชื้อของคุณเองได้ สิ่งนี้มีประโยชน์หากคุณต้องการใช้ห้องสมุดเฉพาะเพื่อทำการฆ่าเชื้อ

แอตทริบิวต์ข้อมูลสำหรับคำแนะนำเครื่องมือแต่ละรายการ

ตัวเลือกสำหรับคำแนะนำเครื่องมือแต่ละรายการสามารถระบุได้โดยใช้แอตทริบิวต์ข้อมูล ตามที่อธิบายข้างต้น

วิธีการ

$().tooltip(options)

แนบตัวจัดการคำแนะนำเครื่องมือกับคอลเล็กชันองค์ประกอบ

.tooltip('show')

แสดงคำแนะนำเครื่องมือขององค์ประกอบ กลับไปยังผู้เรียกก่อนที่จะแสดงคำแนะนำเครื่องมือจริง (กล่าวคือ ก่อนที่shown.bs.tooltipเหตุการณ์จะเกิดขึ้น) นี่ถือเป็นการเรียกใช้ "คู่มือ" ของคำแนะนำเครื่องมือ คำแนะนำเครื่องมือที่มีชื่อความยาวเป็นศูนย์จะไม่แสดงขึ้น

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

.tooltip('hide')

ซ่อนคำแนะนำเครื่องมือขององค์ประกอบ กลับไปที่ผู้โทรก่อนที่คำแนะนำเครื่องมือจะถูกซ่อนจริง ๆ (เช่นก่อนหน้าhidden.bs.tooltipเหตุการณ์จะเกิดขึ้น) นี่ถือเป็นการเรียกใช้ "คู่มือ" ของคำแนะนำเครื่องมือ

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

.tooltip('toggle')

สลับคำแนะนำเครื่องมือขององค์ประกอบ กลับไปยังผู้เรียกก่อนที่จะแสดงหรือซ่อนคำแนะนำเครื่องมือจริง (เช่น ก่อนที่ เหตุการณ์ shown.bs.tooltipหรือhidden.bs.tooltipเหตุการณ์จะเกิดขึ้น) นี่ถือเป็นการเรียกใช้ "คู่มือ" ของคำแนะนำเครื่องมือ

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

.tooltip('destroy')

ซ่อนและทำลายคำแนะนำขององค์ประกอบ คำแนะนำเครื่องมือที่ใช้การมอบหมาย (ซึ่งสร้างขึ้นโดยใช้ตัวselectorเลือก ) ไม่สามารถทำลายทีละรายการในองค์ประกอบทริกเกอร์ที่สืบทอดได้

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

เหตุการณ์

ประเภทงาน คำอธิบาย
show.bs.tooltip เหตุการณ์นี้จะเริ่มทำงานทันทีเมื่อมีshowการเรียกเมธอดของอินสแตนซ์
แสดง.bs.tooltip เหตุการณ์นี้เริ่มทำงานเมื่อผู้ใช้มองเห็นคำแนะนำเครื่องมือ (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์)
hide.bs.tooltip เหตุการณ์นี้เริ่มทำงานทันทีเมื่อhideมีการเรียกเมธอดของอินสแตนซ์
hidden.bs.tooltip เหตุการณ์นี้เริ่มทำงานเมื่อคำแนะนำเครื่องมือถูกซ่อนจากผู้ใช้เสร็จสิ้น (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์)
inserted.bs.tooltip เหตุการณ์นี้เริ่มทำงานหลังจากshow.bs.tooltipเหตุการณ์เมื่อมีการเพิ่มเทมเพลตคำแนะนำเครื่องมือใน DOM
$('#myTooltip').on('hidden.bs.tooltip', function () {
  // do something…
})

Popovers popover.js

เพิ่มเนื้อหาซ้อนทับขนาดเล็ก เช่น บน iPad ลงในองค์ประกอบใดๆ เพื่อใช้เป็นข้อมูลรอง

ป๊อปโอเวอร์ที่มีทั้งชื่อและเนื้อหามีความยาวเป็นศูนย์จะไม่ปรากฏ

การพึ่งพาปลั๊กอิน

Popovers ต้องการปลั๊กอินคำแนะนำเครื่องมือที่จะรวมอยู่ใน Bootstrap เวอร์ชันของคุณ

ฟังก์ชั่นการเลือกใช้งาน

ด้วยเหตุผลด้านประสิทธิภาพ Tooltip และ Popover data-apis เป็นแบบเลือกใช้ ซึ่งหมายความว่าคุณต้องเริ่มต้นด้วยตนเอง

วิธีหนึ่งในการเริ่มต้น popovers ทั้งหมดบนหน้าคือการเลือกตามdata-toggleแอตทริบิวต์:

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

ป๊อปอัปในกลุ่มปุ่ม กลุ่มอินพุต และตารางต้องมีการตั้งค่าพิเศษ

เมื่อใช้ป๊อปอัปกับองค์ประกอบภายใน a .btn-groupหรือ a หรือ .input-groupองค์ประกอบที่เกี่ยวข้องกับตาราง ( <td>, <th>, <tr>, <thead>, <tbody>, <tfoot>) คุณจะต้องระบุตัวเลือกcontainer: 'body'(เอกสารด้านล่าง) เพื่อหลีกเลี่ยงผลข้างเคียงที่ไม่ต้องการ (เช่น องค์ประกอบที่ขยายกว้างขึ้นและ/ หรือสูญเสียมุมมนเมื่อป๊อปโอเวอร์ถูกกระตุ้น)

อย่าพยายามแสดงป๊อปอัปในองค์ประกอบที่ซ่อนอยู่

การ เรียก$(...).popover('show')เมื่อองค์ประกอบเป้าหมายคือdisplay: none;จะทำให้ป๊อปโอเวอร์อยู่ในตำแหน่งที่ไม่ถูกต้อง

ป๊อปอัปบนองค์ประกอบที่ปิดใช้งานต้องใช้องค์ประกอบแรปเปอร์

หากต้องการเพิ่มป๊อปโอเวอร์ให้กับ a disabledหรือ.disabledองค์ประกอบ ให้ใส่องค์ประกอบภายใน a <div>และใช้ป๊อปโอเวอร์กับองค์ประกอบนั้น<div>แทน

ลิงค์หลายบรรทัด

บางครั้งคุณต้องการเพิ่มป๊อปโอเวอร์ไปยังไฮเปอร์ลิงก์ที่ตัดหลายบรรทัด ลักษณะการทำงานเริ่มต้นของปลั๊กอินป๊อปโอเวอร์คือการจัดกึ่งกลางในแนวนอนและแนวตั้ง เพิ่มwhite-space: nowrap;จุดยึดของคุณเพื่อหลีกเลี่ยงสิ่งนี้

ตัวอย่าง

ป๊อปโอเวอร์แบบคงที่

มีสี่ตัวเลือก: จัดตำแหน่งบน ขวา ล่าง และซ้าย

ท็อปโอเวอร์

Sed posuere consectetur est ที่ lobortis. Aenean eu leo ​​quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

Popover ขวา

Sed posuere consectetur est ที่ lobortis. Aenean eu leo ​​quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

ด้านล่างป๊อปโอเวอร์

Sed posuere consectetur est ที่ lobortis. Aenean eu leo ​​quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

Popover ซ้าย

Sed posuere consectetur est ที่ lobortis. Aenean eu leo ​​quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

สาธิตสด

<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>

สี่ทิศ

<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>

ปิดในคลิกถัดไป

ใช้focusทริกเกอร์เพื่อปิดป๊อปอัปในคลิกถัดไปที่ผู้ใช้ทำ

มาร์กอัปเฉพาะที่จำเป็นสำหรับการเลิกจ้างเมื่อคลิกถัดไป

สำหรับพฤติกรรมข้ามเบราว์เซอร์และข้ามแพลตฟอร์มที่เหมาะสม คุณต้องใช้<a>แท็กไม่ใช่แท็<button>ก และคุณต้องรวมแอตทริบิวต์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>

การใช้งาน

เปิดใช้งานป๊อปอัปผ่าน JavaScript:

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

ตัวเลือก

ตัวเลือกสามารถส่งผ่านแอตทริบิวต์ข้อมูลหรือ JavaScript สำหรับแอ็ตทริบิวต์ data ให้ผนวกชื่ออ็อพชันต่อท้ายdata-เช่นเดียวกับในdata-animation="".

โปรดทราบว่าด้วยเหตุผลด้านความปลอดภัยsanitize, sanitizeFnและwhiteListตัวเลือกไม่สามารถระบุได้โดยใช้แอตทริบิวต์ข้อมูล

ชื่อ พิมพ์ ค่าเริ่มต้น คำอธิบาย
แอนิเมชั่น บูลีน จริง ใช้ CSS Fade Transition กับป๊อปโอเวอร์
คอนเทนเนอร์ สตริง | เท็จ เท็จ

ต่อท้ายป๊อปโอเวอร์กับองค์ประกอบเฉพาะ ตัวอย่าง: container: 'body'. ตัวเลือกนี้มีประโยชน์อย่างยิ่ง โดยจะช่วยให้คุณสามารถวางตำแหน่งป๊อปโอเวอร์ในโฟลว์ของเอกสารใกล้กับองค์ประกอบที่ทริกเกอร์ ซึ่งจะป้องกันไม่ให้ป๊อปโอเวอร์ลอยออกจากองค์ประกอบที่ทริกเกอร์ในระหว่างการปรับขนาดหน้าต่าง

เนื้อหา สตริง | การทำงาน ''

ค่าเนื้อหาเริ่มต้น ifdata-contentแอตทริบิวต์

หากมีการกำหนดฟังก์ชัน ฟังก์ชันนั้นจะถูกเรียกโดยthisตั้งค่าการอ้างอิงไปยังองค์ประกอบที่เชื่อมต่อป๊อปโอเวอร์

ล่าช้า หมายเลข | วัตถุ 0

ความล่าช้าในการแสดงและซ่อนป๊อปโอเวอร์ (ms) - ใช้ไม่ได้กับประเภททริกเกอร์ด้วยตนเอง

หากมีการระบุตัวเลข การหน่วงเวลาจะใช้กับทั้งซ่อน/แสดง

โครงสร้างวัตถุคือ:delay: { "show": 500, "hide": 100 }

html บูลีน เท็จ แทรก HTML ลงในป๊อปโอเวอร์ textหากเป็นเท็จ จะใช้วิธีของ jQuery เพื่อแทรกเนื้อหาลงใน DOM ใช้ข้อความหากคุณกังวลเกี่ยวกับการโจมตี XSS
ตำแหน่ง สตริง | การทำงาน 'ขวา'

วิธีวางตำแหน่งป๊อปโอเวอร์ - ด้านบน | ด้านล่าง | ซ้าย | ขวา | อัตโนมัติ
เมื่อระบุ "อัตโนมัติ" ระบบจะกำหนดทิศทางป๊อปโอเวอร์ใหม่แบบไดนามิก ตัวอย่างเช่น หากตำแหน่งเป็น "ซ้ายอัตโนมัติ" ป๊อปโอเวอร์จะแสดงไปทางซ้ายเมื่อเป็นไปได้ ไม่เช่นนั้นจะแสดงทางขวา

เมื่อใช้ฟังก์ชันเพื่อกำหนดตำแหน่ง ฟังก์ชันจะถูกเรียกโดยมีโหนด DOM แบบป๊อปโอเวอร์เป็นอาร์กิวเมนต์แรก และโหนด DOM ที่ทริกเกอร์องค์ประกอบเป็นโหนดที่สอง บริบทถูกตั้ง ค่าthisเป็นอินสแตนซ์ป๊อปโอเวอร์

ตัวเลือก สตริง เท็จ หากมีตัวเลือก ออบเจ็กต์ป๊อปโอเวอร์จะถูกส่งไปยังเป้าหมายที่ระบุ ในทางปฏิบัติ ใช้เพื่อเปิดใช้งานเนื้อหา HTML แบบไดนามิกเพื่อเพิ่มป๊อปอัป ดูสิ่งนี้และตัวอย่างข้อมูล
แม่แบบ สตริง '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'

HTML พื้นฐานที่จะใช้เมื่อสร้างป๊อปโอเวอร์

ป๊อปโอเวอร์titleจะถูกฉีดเข้าไปในไฟล์.popover-title.

ป๊อปโอเวอร์contentจะถูกฉีดเข้าไปในไฟล์.popover-content.

.arrowจะกลายเป็นลูกศรของป๊อปโอเวอร์

องค์ประกอบ wrapper นอกสุดควรมี.popoverคลาส

ชื่อ สตริง | การทำงาน ''

ค่าเริ่มต้นของชื่อหากไม่มีtitleแอตทริบิวต์

หากมีการกำหนดฟังก์ชัน ฟังก์ชันนั้นจะถูกเรียกโดยthisตั้งค่าการอ้างอิงไปยังองค์ประกอบที่เชื่อมต่อป๊อปโอเวอร์

สิ่งกระตุ้น สตริง 'คลิก' วิธีเรียกป๊อปโอเวอร์ - คลิก | โฉบ | โฟกัส | คู่มือ. คุณอาจส่งทริกเกอร์หลายตัว แยกพวกเขาด้วยช่องว่าง manualไม่สามารถรวมกับทริกเกอร์อื่นได้
วิวพอร์ต สตริง | วัตถุ | การทำงาน { ตัวเลือก: 'body', padding: 0 }

ให้ป๊อปโอเวอร์อยู่ภายในขอบเขตขององค์ประกอบนี้ ตัวอย่าง: viewport: '#viewport'or{ "selector": "#viewport", "padding": 0 }

หากมีการกำหนดฟังก์ชัน ฟังก์ชันจะถูกเรียกด้วยโหนด DOM องค์ประกอบที่ทริกเกอร์เป็นอาร์กิวเมนต์เดียว บริบทถูกตั้ง ค่าthisเป็นอินสแตนซ์ป๊อปโอเวอร์

ฆ่าเชื้อ บูลีน จริง เปิดหรือปิดการฆ่าเชื้อ หากเปิดใช้งาน'template'และ'content'ตัว'title'เลือกต่างๆ จะถูกฆ่าเชื้อ
whiteList วัตถุ ค่าเริ่มต้น ออบเจ็กต์ที่มีแอตทริบิวต์และแท็กที่อนุญาต
ฆ่าเชื้อFn null | การทำงาน โมฆะ ที่นี่คุณสามารถจัดหาฟังก์ชันฆ่าเชื้อของคุณเองได้ สิ่งนี้มีประโยชน์หากคุณต้องการใช้ห้องสมุดเฉพาะเพื่อทำการฆ่าเชื้อ

แอตทริบิวต์ข้อมูลสำหรับป๊อปอัปแต่ละรายการ

ตัวเลือกสำหรับป๊อปอัปแต่ละรายการสามารถระบุได้โดยใช้แอตทริบิวต์ข้อมูล ตามที่อธิบายข้างต้น

วิธีการ

$().popover(options)

เริ่มต้น popovers สำหรับคอลเล็กชันองค์ประกอบ

.popover('show')

เผยให้เห็นป๊อปโอเวอร์ขององค์ประกอบ กลับไปยังผู้โทรก่อนที่ป๊อปโอเวอร์จะปรากฏขึ้นจริง (เช่น ก่อนshown.bs.popoverเหตุการณ์จะเกิดขึ้น) นี่ถือเป็นการกระตุ้น "ด้วยตนเอง" ของป๊อปโอเวอร์ ป๊อปอัปที่มีทั้งชื่อและเนื้อหามีความยาวเป็นศูนย์จะไม่ปรากฏ

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

.popover('hide')

ซ่อนป๊อปโอเวอร์ขององค์ประกอบ กลับไปที่ผู้โทรก่อนที่ป๊อปโอเวอร์จะถูกซ่อนจริง ๆ (เช่นก่อนhidden.bs.popoverเหตุการณ์จะเกิดขึ้น) นี่ถือเป็นการกระตุ้น "ด้วยตนเอง" ของป๊อปโอเวอร์

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

.popover('toggle')

สลับป๊อปโอเวอร์ขององค์ประกอบ กลับไปยังผู้โทรก่อนที่ป๊อปโอเวอร์จะแสดงหรือซ่อนอยู่จริง (กล่าวคือ ก่อนที่ เหตุการณ์ shown.bs.popoverหรือhidden.bs.popoverเหตุการณ์จะเกิดขึ้น) นี่ถือเป็นการกระตุ้น "ด้วยตนเอง" ของป๊อปโอเวอร์

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

.popover('destroy')

ซ่อนและทำลายป๊อปโอเวอร์ขององค์ประกอบ ป๊อปโอเวอร์ที่ใช้การมอบหมาย (ซึ่งสร้างขึ้นโดยใช้ตัวselectorเลือก ) ไม่สามารถทำลายทีละรายการในองค์ประกอบทริกเกอร์ที่สืบทอดได้

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

เหตุการณ์

ประเภทงาน คำอธิบาย
show.bs.popover เหตุการณ์นี้จะเริ่มทำงานทันทีเมื่อมีshowการเรียกเมธอดของอินสแตนซ์
แสดง.bs.popover เหตุการณ์นี้เริ่มทำงานเมื่อผู้ใช้มองเห็นป๊อปโอเวอร์ (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์)
hide.bs.popover เหตุการณ์นี้เริ่มทำงานทันทีเมื่อhideมีการเรียกเมธอดของอินสแตนซ์
hidden.bs.popover เหตุการณ์นี้เริ่มทำงานเมื่อป๊อปโอเวอร์ถูกซ่อนจากผู้ใช้เสร็จสิ้น (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์)
แทรก.bs.popover เหตุการณ์นี้เริ่มทำงานหลังจากshow.bs.popoverเหตุการณ์เมื่อมีการเพิ่มเทมเพลตป๊อปโอเวอร์ใน DOM
$('#myPopover').on('hidden.bs.popover', function () {
  // do something…
})

ข้อความแจ้งเตือนalert.js

ตัวอย่างการแจ้งเตือน

เพิ่มฟังก์ชันการยกเลิกให้กับข้อความแจ้งเตือนทั้งหมดด้วยปลั๊กอินนี้

เมื่อใช้.closeปุ่ม ต้องเป็นลูกคนแรกของ the .alert-dismissibleและไม่มีเนื้อหาข้อความใดนำหน้าในมาร์กอัป

การใช้งาน

เพียงเพิ่มdata-dismiss="alert"ปุ่มปิดเพื่อให้ฟังก์ชันปิดการแจ้งเตือนโดยอัตโนมัติ การปิดการแจ้งเตือนจะเป็นการนำออกจาก DOM

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

หากต้องการให้การแจ้งเตือนของคุณใช้ภาพเคลื่อนไหวเมื่อปิด ให้ตรวจสอบว่ามี คลาส .fadeและ.inคลาสที่ใช้อยู่แล้ว

วิธีการ

$().alert()

ทำให้การแจ้งเตือนฟังเหตุการณ์การคลิกบนองค์ประกอบลูกหลานที่มีdata-dismiss="alert"แอตทริบิวต์ (ไม่จำเป็นเมื่อใช้การกำหนดค่าเริ่มต้นอัตโนมัติของ data-api)

$().alert('close')

ปิดการแจ้งเตือนโดยลบออกจาก DOM ถ้า.fadeและ.inอยู่บนองค์ประกอบ การแจ้งเตือนจะจางหายไปก่อนที่จะถูกลบ

เหตุการณ์

ปลั๊กอินการแจ้งเตือนของ Bootstrap เปิดเผยเหตุการณ์บางอย่างสำหรับการเชื่อมต่อกับฟังก์ชันการแจ้งเตือน

ประเภทงาน คำอธิบาย
ปิด.bs.alert เหตุการณ์นี้จะเริ่มทำงานทันทีเมื่อมีcloseการเรียกเมธอดของอินสแตนซ์
ปิด.bs.alert เหตุการณ์นี้เริ่มทำงานเมื่อมีการปิดการแจ้งเตือน (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์)
$('#myAlert').on('closed.bs.alert', function () {
  // do something…
})

ปุ่มbutton.js

ทำสิ่งต่างๆ ได้มากขึ้นด้วยปุ่มต่างๆ สถานะปุ่มควบคุมหรือสร้างกลุ่มปุ่มสำหรับส่วนประกอบเพิ่มเติม เช่น แถบเครื่องมือ

ความเข้ากันได้ข้ามเบราว์เซอร์

Firefox ยังคงมีสถานะการควบคุมฟอร์ม (ความพิการและการตรวจสอบ) ในการโหลดหน้าเว็บ วิธีแก้ปัญหาสำหรับสิ่งนี้คือการใช้autocomplete="off". ดู ข้อผิดพลาด Mozilla #654072

Stateful

เพิ่มdata-loading-text="Loading..."เพื่อใช้สถานะการโหลดบนปุ่ม

คุณลักษณะนี้เลิกใช้งานตั้งแต่ v3.3.5 และถูกลบใน v4

ใช้สถานะใดก็ได้ที่คุณต้องการ!

เพื่อการสาธิตนี้ เราใช้data-loading-textและ$().button('loading')แต่นั่นไม่ใช่สถานะเดียวที่คุณสามารถใช้ได้ ดูเพิ่มเติมเกี่ยวกับสิ่งนี้ด้านล่างใน$().button(string)เอกสารประกอบ

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

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

สลับเดี่ยว

เพิ่มdata-toggle="button"เพื่อเปิดใช้งานการสลับบนปุ่มเดียว

ต้องการปุ่มสลับล่วงหน้า.activeและaria-pressed="true"

สำหรับปุ่มที่สลับล่วงหน้า คุณต้องเพิ่ม.activeคลาสและaria-pressed="true"แอตทริบิวต์ให้กับbuttonตัวคุณเอง

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

ช่องทำเครื่องหมาย / วิทยุ

เพิ่มdata-toggle="buttons"ลงใน.btn-groupช่องทำเครื่องหมายหรืออินพุตวิทยุที่มีเพื่อเปิดใช้งานการสลับในสไตล์ที่เกี่ยวข้อง

ต้องการตัวเลือกที่เลือกไว้ล่วงหน้า.active

สำหรับตัวเลือกที่เลือกไว้ล่วงหน้า คุณต้องเพิ่ม.activeคลาสเข้ากับอินพุตlabelด้วยตนเอง

สถานะการตรวจสอบด้วยภาพจะอัปเดตเมื่อคลิกเท่านั้น

หากสถานะที่ทำเครื่องหมายไว้ของปุ่มช่องทำเครื่องหมายได้รับการอัปเดตโดยไม่ทำให้clickเกิดเหตุการณ์บนปุ่ม (เช่น ผ่าน<input type="reset">หรือผ่านการตั้งค่าcheckedคุณสมบัติของอินพุต) คุณจะต้องสลับ.activeคลาสกับอินพุตlabelด้วยตนเอง

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

วิธีการ

$().button('toggle')

สลับสถานะการกด ให้ปุ่มมีลักษณะที่เปิดใช้งาน

$().button('reset')

รีเซ็ตสถานะปุ่ม - สลับข้อความเป็นข้อความต้นฉบับ เมธอดนี้เป็นแบบอะซิงโครนัสและส่งคืนก่อนที่การรีเซ็ตจะเสร็จสิ้นจริง

$().button(string)

สลับข้อความเป็นสถานะข้อความที่กำหนดไว้ของข้อมูล

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

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

ยุบยุบjs

ปลั๊กอินที่ยืดหยุ่นซึ่งใช้คลาสจำนวนหนึ่งเพื่อให้สลับการทำงานได้ง่าย

การพึ่งพาปลั๊กอิน

การยุบต้องใช้ปลั๊กอินการเปลี่ยนเพื่อรวมไว้ใน Bootstrap เวอร์ชันของคุณ

ตัวอย่าง

คลิกปุ่มด้านล่างเพื่อแสดงและซ่อนองค์ประกอบอื่นผ่านการเปลี่ยนแปลงคลาส:

  • .collapseซ่อนเนื้อหา
  • .collapsingถูกนำไปใช้ในระหว่างช่วงการเปลี่ยนภาพ
  • .collapse.inแสดงเนื้อหา

คุณสามารถใช้ลิงก์ที่มีhrefแอตทริบิวต์หรือปุ่มที่มีdata-targetแอตทริบิวต์ได้ ในทั้งสองกรณีdata-toggle="collapse"จำเป็นต้องมี

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>

ตัวอย่างหีบเพลง

ขยายลักษณะการยุบเริ่มต้นเพื่อสร้างหีบเพลงกับส่วนประกอบแผง

Anim pariatur cliche reprehenderit, enim eiusmod high life อัลบัมมัสเทอร์รี่ริชาร์ดสันโฆษณาปลาหมึก 3 wolf moon officia aute, non cupidat สเก็ตบอร์ด dolor บรันช์ รถบรรทุกอาหาร quinoa nesciunt laborum eiusmod. บรันช์ 3 หมาป่า มูน เทมพอร์ ซันท์ อะลิควา วางนกบนนั้น ปลาหมึก กาแฟต้นกำเนิดเดียว Nihil anim keffiyeh helvetica, เบียร์ฝีมือแรงงาน wes anderson cred nesciunt sapiente ea proident โฆษณา วีแกน ยกเว้น คนขายเนื้อ รอง lomo เลกกิ้ง occaecat คราฟท์เบียร์จากฟาร์มสู่โต๊ะ, ยีนส์สังเคราะห์ความงามแบบดิบๆ ที่คุณอาจไม่เคยได้ยินมาก่อนเกี่ยวกับการใช้ VHS ที่ยั่งยืน
Anim pariatur cliche reprehenderit, enim eiusmod high life อัลบัมมัสเทอร์รี่ริชาร์ดสันโฆษณาปลาหมึก 3 wolf moon officia aute, non cupidat สเก็ตบอร์ด dolor บรันช์ รถบรรทุกอาหาร quinoa nesciunt laborum eiusmod. บรันช์ 3 หมาป่า มูน เทมพอร์ ซันท์ อะลิควา วางนกบนนั้น ปลาหมึก กาแฟต้นกำเนิดเดียว Nihil anim keffiyeh helvetica, เบียร์ฝีมือแรงงาน wes anderson cred nesciunt sapiente ea proident โฆษณา วีแกน ยกเว้น คนขายเนื้อ รอง lomo เลกกิ้ง occaecat คราฟท์เบียร์จากฟาร์มสู่โต๊ะ, ยีนส์สังเคราะห์ความงามแบบดิบๆ ที่คุณอาจไม่เคยได้ยินมาก่อนเกี่ยวกับการใช้ VHS ที่ยั่งยืน
Anim pariatur cliche reprehenderit, enim eiusmod high life อัลบัมมัสเทอร์รี่ริชาร์ดสันโฆษณาปลาหมึก 3 wolf moon officia aute, non cupidat สเก็ตบอร์ด dolor บรันช์ รถบรรทุกอาหาร quinoa nesciunt laborum eiusmod. บรันช์ 3 หมาป่า มูน เทมพอร์ ซันท์ อะลิควา วางนกบนนั้น ปลาหมึก กาแฟต้นกำเนิดเดียว Nihil anim keffiyeh helvetica, เบียร์ฝีมือแรงงาน wes anderson cred nesciunt sapiente ea proident โฆษณา วีแกน ยกเว้น คนขายเนื้อ รอง lomo เลกกิ้ง occaecat คราฟท์เบียร์จากฟาร์มสู่โต๊ะ, ยีนส์สังเคราะห์ความงามแบบดิบๆ ที่คุณอาจไม่เคยได้ยินมาก่อนเกี่ยวกับการใช้ VHS ที่ยั่งยืน
<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>

นอกจากนี้ยังสามารถเปลี่ยน.panel-bodys กับ.list-groups ได้อีกด้วย

  • Bootply
  • สิ่งอำนวยความสะดวกหนึ่งสิ่งอำนวยความสะดวก
  • eros ที่สอง

ทำให้สามารถเข้าถึงตัวควบคุมการขยาย/ยุบได้

อย่าลืมเพิ่มaria-expandedองค์ประกอบการควบคุม แอตทริบิวต์นี้กำหนดสถานะปัจจุบันขององค์ประกอบที่ยุบได้อย่างชัดเจนให้กับโปรแกรมอ่านหน้าจอและเทคโนโลยีช่วยเหลือที่คล้ายคลึงกัน หากองค์ประกอบที่ยุบได้ถูกปิดโดยค่าเริ่มต้น องค์ประกอบนั้นควรมีค่าaria-expanded="false"เป็น หากคุณได้ตั้งค่าให้เปิดองค์ประกอบที่ยุบได้โดยค่าเริ่มต้นโดยใช้inคลาส ให้ตั้งค่าaria-expanded="true"บนตัวควบคุมแทน ปลั๊กอินจะสลับแอตทริบิวต์นี้โดยอัตโนมัติโดยพิจารณาจากการเปิดหรือปิดองค์ประกอบที่ยุบได้

นอกจากนี้ หากองค์ประกอบควบคุมของคุณกำหนดเป้าหมายไปยังองค์ประกอบที่ยุบได้เพียงองค์ประกอบเดียว นั่นคือdata-targetแอตทริบิวต์ชี้ไปที่ anidตัวเลือก คุณอาจเพิ่มaria-controlsแอตทริบิวต์เพิ่มเติมลงในองค์ประกอบการควบคุม ซึ่งประกอบด้วยidองค์ประกอบที่ยุบได้ โปรแกรมอ่านหน้าจอสมัยใหม่และเทคโนโลยีช่วยเหลือที่คล้ายคลึงกันใช้ประโยชน์จากแอตทริบิวต์นี้เพื่อให้ผู้ใช้มีทางลัดเพิ่มเติมเพื่อนำทางไปยังองค์ประกอบที่ยุบได้โดยตรง

การใช้งาน

ปลั๊กอินยุบใช้คลาสสองสามคลาสเพื่อจัดการกับงานหนัก:

  • .collapseซ่อนเนื้อหา
  • .collapse.inแสดงเนื้อหา
  • .collapsingถูกเพิ่มเมื่อการเปลี่ยนแปลงเริ่มต้น และลบออกเมื่อเสร็จสิ้น

คลาสเหล่านี้สามารถพบได้ในcomponent-animations.less .

ผ่านแอตทริบิวต์ข้อมูล

เพียงเพิ่มdata-toggle="collapse"และ a data-targetให้กับองค์ประกอบเพื่อกำหนดการควบคุมองค์ประกอบที่ยุบได้โดยอัตโนมัติ แอตทริบิวต์data-targetยอมรับตัวเลือก CSS เพื่อปรับใช้การยุบ อย่าลืมเพิ่มคลาสcollapseลงในองค์ประกอบที่ยุบได้ หากคุณต้องการให้เปิดโดยค่าเริ่มต้น ให้เพิ่มคลาสinเพิ่มเติม

หากต้องการเพิ่มการจัดการกลุ่มแบบหีบเพลงให้กับตัวควบคุมที่ยุบได้ ให้เพิ่มแอตทริบิวต์data-parent="#selector"ข้อมูล อ้างถึงการสาธิตเพื่อดูการดำเนินการนี้

ผ่านจาวาสคริปต์

เปิดใช้งานด้วยตนเองด้วย:

$('.collapse').collapse()

ตัวเลือก

ตัวเลือกสามารถส่งผ่านแอตทริบิวต์ข้อมูลหรือ JavaScript สำหรับแอ็ตทริบิวต์ data ให้ผนวกชื่ออ็อพชันต่อท้ายdata-เช่นเดียวกับในdata-parent="".

ชื่อ ���ิมพ์ ค่าเริ่มต้น คำอธิบาย
พ่อแม่ ตัวเลือก เท็จ หากมีการระบุตัวเลือก องค์ประกอบที่ยุบได้ทั้งหมดภายใต้พาเรนต์ที่ระบุจะถูกปิดเมื่อแสดงรายการที่ยุบได้นี้ (คล้ายกับพฤติกรรมหีบเพลงแบบดั้งเดิม - ขึ้นอยู่กับpanelชั้นเรียน)
สลับ บูลีน จริง สลับองค์ประกอบที่ยุบได้ในการเรียกใช้

วิธีการ

.collapse(options)

เปิดใช้งานเนื้อหาของคุณเป็นองค์ประกอบที่ยุบได้ ยอมรับตัวเลือกobjectเสริม

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

.collapse('toggle')

สลับองค์ประกอบที่ยุบได้เพื่อแสดงหรือซ่อน กลับไปยังผู้เรียกก่อนที่องค์ประกอบที่ยุบได้จะถูกแสดงหรือซ่อนอยู่จริง (กล่าวคือ ก่อนที่ เหตุการณ์ shown.bs.collapseor hidden.bs.collapseจะเกิดขึ้น)

.collapse('show')

แสดงองค์ประกอบที่ยุบได้ กลับไปยังผู้เรียกก่อนที่จะแสดงองค์ประกอบที่ยุบได้จริง (เช่น ก่อนที่shown.bs.collapseเหตุการณ์จะเกิดขึ้น)

.collapse('hide')

ซ่อนองค์ประกอบที่ยุบได้ กลับไปยังผู้เรียกก่อนที่องค์ประกอบที่ยุบได้จะถูกซ่อนจริง ๆ (กล่าวคือ ก่อนที่hidden.bs.collapseเหตุการณ์จะเกิดขึ้น)

เหตุการณ์

คลาสการยุบของ Bootstrap แสดงเหตุการณ์สองสามเหตุการณ์สำหรับการเชื่อมต่อกับฟังก์ชันการยุบ

ประเภทงาน คำอธิบาย
show.bs.collapse เหตุการณ์นี้จะเริ่มทำงานทันทีเมื่อมีshowการเรียกเมธอดของอินสแตนซ์
แสดง.bs.ยุบ เหตุการณ์นี้เริ่มทำงานเมื่อผู้ใช้มองเห็นองค์ประกอบการยุบ (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์)
hide.bs.collapse เหตุการณ์นี้เริ่มทำงานทันทีเมื่อhideมีการเรียกเมธอด
hidden.bs.collapse เหตุการณ์นี้เริ่มทำงานเมื่อองค์ประกอบการยุบถูกซ่อนจากผู้ใช้ (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์)
$('#myCollapsible').on('hidden.bs.collapse', function () {
  // do something…
})

ม้าหมุนcarousel.js

ส่วนประกอบสไลด์โชว์สำหรับการปั่นจักรยานผ่านองค์ประกอบต่างๆ เช่น ม้าหมุน ไม่รองรับภาพหมุนที่ซ้อนกัน

<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>

คำบรรยายเสริม

เพิ่มคำอธิบายภาพให้กับสไลด์ของคุณได้อย่างง่ายดายด้วย.carousel-captionองค์ประกอบภายใน.itemไฟล์ . วาง HTML ที่เป็นตัวเลือกไว้ภายในนั้น และมันจะถูกจัดตำแหน่งและจัดรูปแบบโดยอัตโนมัติ

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

หลายวงล้อ

ภาพหมุนต้องใช้ an idที่คอนเทนเนอร์ด้านนอกสุด (the .carousel) เพื่อให้ตัวควบคุมแบบหมุนทำงานได้อย่างถูกต้อง เมื่อเพิ่มภาพหมุนหลายภาพ หรือเมื่อเปลี่ยนภาพหมุนidโปรดอัปเดตการควบคุมที่เกี่ยวข้อง

ผ่านแอตทริบิวต์ข้อมูล

ใช้แอตทริบิวต์ข้อมูลเพื่อควบคุมตำแหน่งของวงล้อได้อย่างง่ายดาย data-slideยอมรับคำหลักprevหรือnextซึ่งเปลี่ยนตำแหน่งสไลด์ที่สัมพันธ์กับตำแหน่งปัจจุบัน อีกทางหนึ่ง ใช้data-slide-toเพื่อส่งดัชนีสไลด์ดิบไปยังภาพหมุนdata-slide-to="2"ซึ่งจะเลื่อนตำแหน่งสไลด์ไปที่ดัชนีเฉพาะที่ขึ้นต้นด้วย0ด้วย

แอตทริบิวต์data-ride="carousel"นี้ใช้เพื่อทำเครื่องหมายภาพหมุนเป็นภาพเคลื่อนไหวโดยเริ่มต้นเมื่อโหลดหน้าเว็บ ไม่สามารถใช้ร่วมกับการเริ่มต้น JavaScript ที่ชัดเจน (ซ้ำซ้อนและไม่จำเป็น) ของภาพหมุนเดียวกัน

ผ่านจาวาสคริปต์

โทรแบบหมุนด้วยตนเองด้วย:

$('.carousel').carousel()

ตัวเลือกสามารถส่งผ่านแอตทริบิวต์ข้อมูลหรือ JavaScript สำหรับแอ็ตทริบิวต์ data ให้ผนวกชื่ออ็อพชันต่อท้ายdata-เช่นเดียวกับในdata-interval="".

ชื่อ พิมพ์ ค่าเริ่มต้น คำอธิบาย
ช่วงเวลา ตัวเลข 5000 ระยะเวลาที่จะหน่วงเวลาระหว่างการปั่นจักรยานรายการโดยอัตโนมัติ หากเป็นเท็จ ภาพหมุนจะไม่หมุนโดยอัตโนมัติ
หยุด สตริง | โมฆะ "โฮเวอร์" หากตั้งค่าเป็น จะ"hover"หยุดการวนรอบของวงล้อชั่วคราวmouseenterและเปิดการวนต่อของวงล้อmouseleaveต่อ หากตั้งค่าเป็น การnullวางเมาส์เหนือภาพหมุนจะไม่หยุดชั่วคราว
ห่อ บูลีน จริง ว่าวงล้อควรวนอย่างต่อเนื่องหรือหยุดยากหรือไม่
แป้นพิมพ์ บูลีน จริง ว่าภาพหมุนควรตอบสนองต่อเหตุการณ์แป้นพิมพ์หรือไม่

เริ่มต้นวงล้อด้วยตัวเลือกเสริมobjectและเริ่มวนรอบรายการต่างๆ

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

หมุนเวียนผ่านรายการแบบหมุนจากซ้ายไปขวา

หยุดม้าหมุนจากการปั่นจักรยานผ่านรายการ

หมุนวงล้อไปที่เฟรมใดเฟรมหนึ่ง (อิงตาม 0 คล้ายกับอาร์เรย์)

วนไปยังรายการก่อนหน้า

วนไปยังรายการถัดไป

คลาสม้าหมุนของ Bootstrap เปิดเผยสองเหตุการณ์สำหรับการเชื่อมต่อกับฟังก์ชันหมุน

ทั้งสองเหตุการณ์มีคุณสมบัติเพิ่มเติมดังต่อไปนี้:

  • direction: ทิศทางที่วงล้อเลื่อน ( "left"หรือ"right")
  • relatedTarget: องค์ประกอบ DOM ที่กำลังถูกเลื่อนเข้าที่ในฐานะรายการที่ใช้งานอยู่

เหตุการณ์ภาพหมุนทั้งหมดจะถูกไล่ออกที่ตัวหมุนเอง (เช่น ที่<div class="carousel">)

ประเภทงาน คำอธิบาย
slide.bs.carousel เหตุการณ์นี้จะเริ่มทำงานทันทีเมื่อมีslideการเรียกใช้เมธอดของอินสแตนซ์
slid.bs.carousel เหตุการณ์นี้เริ่มทำงานเมื่อภาพหมุนเสร็จสิ้นการเปลี่ยนสไลด์
$('#myCarousel').on('slide.bs.carousel', function () {
  // do something…
})

ติด affix.js

ตัวอย่าง

ปลั๊กอินเสริมจะสลับposition: fixed;เปิดและปิด โดยเลียนแบบเอฟเฟกต์ที่พบด้วยposition: sticky;. การนำทางย่อยทางด้านขวาเป็นการสาธิตสดของปลั๊กอินเสริม


การใช้งาน

ใช้ปลั๊กอินเสริมผ่านแอตทริบิวต์ข้อมูลหรือด้วยตนเองด้วย JavaScript ของคุณเอง ในทั้งสองสถานการณ์ คุณต้องระบุ CSS สำหรับการวางตำแหน่งและความกว้างของเนื้อหาที่ติดอยู่

หมายเหตุ: อย่าใช้ปลั๊กอินเสริมบนองค์ประกอบที่มีอยู่ในองค์ประกอบที่ค่อนข้างวางตำแหน่ง เช่น คอลัมน์ที่ดึงหรือผลัก เนื่องจาก ข้อผิดพลาดในการเรนเด อร์ของSafari

การวางตำแหน่งผ่าน CSS

ปลั๊กอินเสริมจะสลับไปมาระหว่างสามคลาส แต่ละคลาสแสดงถึงสถานะเฉพาะ: .affix, , .affix-topและ .affix-bottomคุณต้องระบุสไตล์ ยกเว้นposition: fixed;on .affixสำหรับคลาสเหล่านี้ด้วยตนเอง (ไม่ขึ้นกับปลั๊กอินนี้) เพื่อจัดการตำแหน่งจริง

นี่คือวิธีการทำงานของปลั๊กอินเสริม:

  1. ในการเริ่มต้น ปลั๊กอินจะเพิ่ม.affix-topเพื่อระบุว่าองค์ประกอบอยู่ในตำแหน่งบนสุด ณ จุดนี้ไม่จำเป็นต้องมีการวางตำแหน่ง CSS
  2. การเลื่อนผ่านองค์ประกอบที่คุณต้องการติดจะทำให้เกิดการติดจริง นี่คือที่.affixแทนที่.affix-topและตั้งค่าposition: fixed;(จัดทำโดย CSS ของ Bootstrap)
  3. หากมีการกำหนดออฟเซ็ตด้านล่าง การเลื่อนผ่าน ไปควรแทนที่.affixด้วย .affix-bottomเนื่องจากออฟเซ็ตเป็นทางเลือก คุณจึงจำเป็นต้องตั้งค่า CSS ที่เหมาะสม ในกรณีนี้ ให้เพิ่มposition: absolute;เมื่อจำเป็น ปลั๊กอินใช้แอตทริบิวต์ข้อมูลหรือตัวเลือก JavaScript เพื่อกำหนดตำแหน่งที่จะวางองค์ประกอบจากที่นั่น

ทำตามขั้นตอนด้านบนเพื่อตั้งค่า CSS ของคุณสำหรับตัวเลือกการใช้งานด้านล่าง

ผ่านแอตทริบิวต์ข้อมูล

หากต้องการเพิ่มพฤติกรรมการติดไปยังองค์ประกอบใดๆ อย่างง่ายดาย เพียงเพิ่มdata-spy="affix"องค์ประกอบที่คุณต้องการสอดแนม ใช้ออฟเซ็ตเพื่อกำหนดว่าเมื่อใดควรสลับการตรึงองค์ประกอบ

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

ผ่านจาวาสคริปต์

เรียกปลั๊กอินเสริมผ่าน JavaScript:

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

ตัวเลือก

ตัวเลือกสามารถส่งผ่านแอตทริบิวต์ข้อมูลหรือ JavaScript สำหรับแอ็ตทริบิวต์ data ให้ผนวกชื่ออ็อพชันต่อท้ายdata-เช่นเดียวกับในdata-offset-top="200".

ชื่อ พิมพ์ ค่าเริ่มต้น คำอธิบาย
offset หมายเลข | ฟังก์ชั่น | วัตถุ 10 พิกเซลที่จะชดเชยจากหน้าจอเมื่อคำนวณตำแหน่งของการเลื่อน หากระบุหมายเลขเดียว ระบบจะใช้การชดเชยทั้งทางด้านบนและด้านล่าง ในการจัดเตรียมออฟเซ็ตด้านล่างและด้านบนที่ไม่เหมือนใคร เพียงแค่ระบุออบเจกต์offset: { top: 10 }หรือoffset: { top: 10, bottom: 5 }. ใช้ฟังก์ชันเมื่อคุณต้องการคำนวณออฟเซ็ตแบบไดนามิก
เป้า ตัวเลือก | โหนด | องค์ประกอบ jQuery windowวัตถุ_ ระบุองค์ประกอบเป้าหมายของส่วนต่อท้าย

วิธีการ

.affix(options)

เปิดใช้งานเนื้อหาของคุณเป็นเนื้อหาที่ติดอยู่ ยอมรับตัวเลือกobjectเสริม

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

.affix('checkPosition')

คำนวณสถานะของส่วนต่อท้ายใหม่ตามขนาด ตำแหน่ง และตำแหน่งเลื่อนขององค์ประกอบที่เกี่ยวข้อง คลาส.affix, .affix-top, และ.affix-bottomถูกเพิ่มหรือลบออกจากเนื้อหาที่ติดอยู่ตามสถานะใหม่ ต้องเรียกวิธีนี้ทุกครั้งที่มีการเปลี่ยนแปลงขนาดของเนื้อหาที่ติดอยู่หรือองค์ประกอบเป้าหมาย เพื่อให้แน่ใจว่าการวางตำแหน่งที่ถูกต้องของเนื้อหาที่ติดอยู่

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

เหตุการณ์

ปลั๊กอินส่วนต่อท้ายของ Bootstrap เปิดเผยเหตุการณ์บางอย่างสำหรับการเชื่อมต่อกับฟังก์ชันการต่อท้าย

ประเภทงาน คำอธิบาย
affix.bs.affix เหตุการณ์นี้จะเริ่มทำงานทันทีก่อนที่จะติดองค์ประกอบ
ติด.bs.affix เหตุการณ์นี้เริ่มทำงานหลังจากติดตั้งองค์ประกอบแล้ว
affix-top.bs.affix เหตุการณ์นี้จะเริ่มทำงานทันทีก่อนที่องค์ประกอบจะติดอยู่ด้านบน
affixed-top.bs.affix เหตุการณ์นี้เริ่มทำงานหลังจากองค์ประกอบได้รับการติดด้านบนแล้ว
affix-bottom.bs.affix เหตุการณ์นี้จะเริ่มทำงานทันทีก่อนที่องค์ประกอบจะติดอยู่ด้านล่าง
ติด-bottom.bs.affix เหตุการณ์นี้เริ่มทำงานหลังจากองค์ประกอบได้รับการติดด้านล่าง