Vështrim i përgjithshëm

Individuale ose të përpiluara

Shtojcat mund të përfshihen individualisht (duke përdorur *.jsskedarët individualë të Bootstrap), ose të gjitha menjëherë (duke përdorur bootstrap.jsose minuar bootstrap.min.js).

Duke përdorur JavaScript të përpiluar

Të dyja bootstrap.jsdhe bootstrap.min.jspërmbajnë të gjitha shtojcat në një skedar të vetëm. Përfshini vetëm një.

Varësitë e shtojcave

Disa shtojca dhe komponentë CSS varen nga shtojcat e tjera. Nëse përfshini shtojcat individualisht, sigurohuni që të kontrolloni për këto varësi në dokumente. Gjithashtu vini re se të gjitha shtojcat varen nga jQuery (kjo do të thotë se jQuery duhet të përfshihet përpara skedarëve të shtojcave). Konsultohuni me nebower.json për të parë se cilat versione të jQuery mbështeten.

Atributet e të dhënave

Ju mund të përdorni të gjitha shtojcat e Bootstrap thjesht përmes API-së së shënjimit pa shkruar një rresht të vetëm JavaScript. Ky është API i klasit të parë i Bootstrap dhe duhet të jetë konsiderata juaj e parë kur përdorni një shtojcë.

Thënë kështu, në disa situata mund të jetë e dëshirueshme të çaktivizohet ky funksionalitet. Prandaj, ne ofrojmë gjithashtu mundësinë për të çaktivizuar atributin e të dhënave API duke shkëputur të gjitha ngjarjet në hapësirën e emrave të dokumentit me data-api. Kjo duket si kjo:

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

Përndryshe, për të synuar një shtojcë specifike, thjesht përfshini emrin e shtojcës si një hapësirë ​​emri së bashku me hapësirën e emrave të të dhënave-api si kjo:

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

Vetëm një shtojcë për element nëpërmjet atributeve të të dhënave

Mos përdorni atribute të dhënash nga shtojca të shumta në të njëjtin element. Për shembull, një buton nuk mund të ketë një këshillë mjeti dhe të ndërrojë një modal. Për ta bërë këtë, përdorni një element mbështjellës.

API programatike

Ne gjithashtu besojmë se duhet të jeni në gjendje të përdorni të gjitha shtojcat e Bootstrap thjesht përmes API-së JavaScript. Të gjitha API-të publike janë metoda të vetme, të lidhura me zinxhirë dhe e kthejnë koleksionin sipas të cilit është vepruar.

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

Të gjitha metodat duhet të pranojnë një objekt opsionesh opsionale, një varg që synon një metodë të caktuar ose asgjë (që fillon një shtojcë me sjellje të paracaktuar):

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

Çdo shtojcë gjithashtu ekspozon konstruktorin e saj të papërpunuar në një Constructorpronë: $.fn.popover.Constructor. Nëse dëshironi të merrni një shembull të veçantë të shtojcave, merrni atë drejtpërdrejt nga një element: $('[rel="popover"]').data('popover').

Cilësimet e parazgjedhura

Ju mund të ndryshoni cilësimet e paracaktuara për një shtesë duke modifikuar Constructor.DEFAULTSobjektin e shtojcës:

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

Asnjë konflikt

Ndonjëherë është e nevojshme të përdoren shtojcat Bootstrap me korniza të tjera UI. Në këto rrethana, herë pas here mund të ndodhin përplasje të hapësirës së emrave. Nëse kjo ndodh, mund të telefononi .noConflictshtojcën që dëshironi të ktheni vlerën.

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

Ngjarjet

Bootstrap ofron ngjarje të personalizuara për shumicën e veprimeve unike të shtojcave. Në përgjithësi, këto vijnë në një formë të paskajores dhe të paskajores - ku infinitivi (sh. show) shkaktohet në fillim të një ngjarjeje, dhe forma e tij e paskajores (p.sh. ) shownnxitet në përfundimin e një veprimi.

Që nga 3.0.0, të gjitha ngjarjet e Bootstrap janë me hapësirë ​​emrash.

Të gjitha ngjarjet infinitive ofrojnë preventDefaultfunksionalitet. Kjo siguron mundësinë për të ndaluar ekzekutimin e një veprimi përpara se të fillojë.

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

Dezinfektues

Këshillat e veglave dhe Popover-at përdorin dezinfektuesin tonë të integruar për të dezinfektuar opsionet që pranojnë HTML.

Vlera e paracaktuar whiteListështë si më poshtë:

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: []
}

Nëse dëshironi të shtoni vlera të reja në këtë parazgjedhje whiteList, mund të bëni sa më poshtë:

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)

Nëse dëshironi të anashkaloni dezinfektuesin tonë sepse preferoni të përdorni një bibliotekë të dedikuar, për shembull DOMPurify , duhet të bëni sa më poshtë:

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

Shfletuesit padocument.implementation.createHTMLDocument

Në rastin e shfletuesve që nuk mbështesin document.implementation.createHTMLDocument, si Internet Explorer 8, funksioni i integruar i sanitizimit e kthen HTML-në ashtu siç është.

Nëse dëshironi të kryeni sanitizimin në këtë rast, ju lutemi specifikoni sanitizeFndhe përdorni një bibliotekë të jashtme si DOMPurify .

Numrat e versioneve

Versioni i secilës prej shtojcave jQuery të Bootstrap mund të aksesohet nëpërmjet VERSIONvetive të konstruktorit të shtojcave. Për shembull, për shtojcën e këshillës së veglave:

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

Nuk ka kthime të veçanta kur JavaScript është i çaktivizuar

Shtojcat e Bootstrap nuk kthehen veçanërisht me hijeshi kur JavaScript është i çaktivizuar. Nëse ju intereson përvoja e përdoruesit në këtë rast, përdorni <noscript>për të shpjeguar situatën (dhe si të riaktivizoni JavaScript) përdoruesve tuaj dhe/ose shtoni kthimet tuaja të personalizuara.

Bibliotekat e palëve të treta

Bootstrap nuk mbështet zyrtarisht bibliotekat JavaScript të palëve të treta si UI Prototype ose jQuery. Pavarësisht .noConflictdhe ngjarjeve me hapësirë ​​emri, mund të ketë probleme të përputhshmërisë që duhet t'i rregulloni vetë.

Tranzicioni i tranzicionit.js

Rreth tranzicioneve

Për efekte të thjeshta tranzicioni, përfshini transition.jsnjë herë së bashku me skedarët e tjerë JS. Nëse jeni duke përdorur të përpiluar (ose të minuar) bootstrap.js, nuk ka nevojë ta përfshini këtë - është tashmë aty.

Çfarë ka brenda

Transition.js është një ndihmës bazë për transitionEndngjarjet, si dhe një emulator i tranzicionit CSS. Përdoret nga shtojcat e tjera për të kontrolluar mbështetjen e tranzicionit CSS dhe për të kapur tranzicionet e varura.

Çaktivizimi i tranzicioneve

Tranzicionet mund të çaktivizohen globalisht duke përdorur fragmentin e mëposhtëm JavaScript, i cili duhet të vijë pasi të jetë ngarkuar transition.js(ose bootstrap.jsose bootstrap.min.js, sipas rastit):

$.support.transition = false

Modalet modale.js

Modalet janë të thjeshta, por fleksibël, kërkesat e dialogut me funksionalitetin minimal të kërkuar dhe parazgjedhjet inteligjente.

Shumë modale të hapura nuk mbështeten

Sigurohuni që të mos hapni një modal ndërsa një tjetër është ende i dukshëm. Shfaqja e më shumë se një modale në të njëjtën kohë kërkon kod të personalizuar.

Vendosja e shënjimit modal

Gjithmonë përpiquni të vendosni kodin HTML të modalit në një pozicion të nivelit të lartë në dokumentin tuaj për të shmangur që komponentët e tjerë të ndikojnë në pamjen dhe/ose funksionalitetin e modalit.

Paralajmërime për pajisjen celulare

Ka disa paralajmërime në lidhje me përdorimin e modaleve në pajisjet celulare. Shikoni dokumentet e mbështetjes së shfletuesit tonë për detaje.

Për shkak të mënyrës se si HTML5 përcakton semantikën e tij, autofocusatributi HTML nuk ka asnjë efekt në modalet e Bootstrap. Për të arritur të njëjtin efekt, përdorni disa JavaScript të personalizuara:

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

Shembuj

Shembull statik

Një modal i dhënë me kokë, trup dhe grup veprimesh në fund.

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

Demoja e drejtpërdrejtë

Ndryshoni një modal nëpërmjet JavaScript duke klikuar butonin më poshtë. Do të rrëshqasë poshtë dhe do të zbehet nga pjesa e sipërme e faqes.

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

Bëni modalet të aksesueshme

Sigurohuni që të shtoni role="dialog"dhe aria-labelledby="...", duke iu referuar titullit modal, në .modal, dhe role="document".modal-dialogvetvete.

Për më tepër, ju mund të jepni një përshkrim të dialogut tuaj modal me aria-describedby.modal.

Përfshirja e videove në YouTube

Përfshirja e videove në YouTube në modale kërkon JavaScript shtesë jo në Bootstrap për të ndaluar automatikisht riprodhimin dhe më shumë. Shihni këtë postim të dobishëm të Stack Overflow për më shumë informacion.

Madhësitë opsionale

Modalet kanë dy madhësi opsionale, të disponueshme nëpërmjet klasave të modifikuesve për t'u vendosur në një .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>

Hiq animacionin

Për modalet që thjesht shfaqen në vend që të zbehen për t'u parë, hiqni .fadeklasën nga shënimi juaj modal.

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

Përdorimi i sistemit të rrjetit

Për të përfituar nga sistemi i rrjetit Bootstrap brenda një modali, thjesht futni folenë .rowbrenda .modal-bodydhe më pas përdorni klasat e sistemit të rrjetit normal.

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

Keni një mori butonash që të gjithë aktivizojnë të njëjtin modal, vetëm me përmbajtje paksa të ndryshme? Përdorni event.relatedTargetdhe atributet HTMLdata-* (mundësisht nëpërmjet jQuery ) për të ndryshuar përmbajtjen e modalit në varësi të butonit që është klikuar. Shihni dokumentet e Ngjarjeve Modal për detaje mbi relatedTarget,

... më shumë butona...
<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)
})

Përdorimi

Shtojca modale ndryshon përmbajtjen tuaj të fshehur sipas kërkesës, nëpërmjet atributeve të të dhënave ose JavaScript. Ai gjithashtu shton sjelljen e parazgjedhur .modal-open<body>lëvizjes për të anashkaluar dhe gjeneron një .modal-backdroppër të siguruar një zonë klikimi për të hequr modalet e treguara kur klikoni jashtë modalit.

Nëpërmjet atributeve të të dhënave

Aktivizoni një modal pa shkruar JavaScript. Vendoseni data-toggle="modal"në një element kontrollues, si një buton, së bashku me një data-target="#foo"ose href="#foo"për të synuar një modal specifik për ta ndërruar.

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

Përmes JavaScript

Thirrni një modal me id myModalme një rresht të vetëm JavaScript:

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

Opsione

Opsionet mund të kalohen nëpërmjet atributeve të të dhënave ose JavaScript. Për atributet e të dhënave, shtoni emrin e opsionit në data-, si në data-backdrop="".

Emri lloji default përshkrim
sfond boolean ose vargun'static' e vërtetë Përfshin një element të sfondit modal. Përndryshe, specifikoni staticpër një sfond që nuk e mbyll modalin kur klikoni.
tastierë logjike e vërtetë Mbyll modalin kur shtypet tasti i arratisjes
shfaqje logjike e vërtetë Tregon modalin kur inicializohet.
në distancë rrugë i rremë

Ky opsion është i vjetëruar që nga v3.3.0 dhe është hequr në v4. Në vend të kësaj, ne rekomandojmë përdorimin e shabllonit nga ana e klientit ose një kornizë të lidhjes së të dhënave ose të telefononi vetë jQuery.load .

Nëse ofrohet një URL në distancë, përmbajtja do të ngarkohet një herë nëpërmjet metodës së jQuery loaddhe do të injektohet në .modal-contentdiv. Nëse jeni duke përdorur data-api, mund të përdorni në mënyrë alternative hrefatributin për të specifikuar burimin në distancë. Një shembull i kësaj tregohet më poshtë:

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

Metodat

Aktivizon përmbajtjen tuaj si modale. Pranon një opsion opsional object.

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

Ndryshon manualisht një modal. Kthehet te thirrësi përpara se modali të jetë shfaqur ose fshehur (dmth. përpara se të ndodhë ngjarja shown.bs.modalose ).hidden.bs.modal

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

Hap me dorë një modal. Kthehet te thirrësi përpara se modali të jetë shfaqur në të vërtetë (dmth. përpara se të shown.bs.modalndodhë ngjarja).

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

Fsheh manualisht një modal. Kthehet te thirrësi përpara se modali të jetë fshehur në të vërtetë (dmth. përpara se të hidden.bs.modalndodhë ngjarja).

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

Rirregullon pozicionimin e modalit për të kundërshtuar një shirit lëvizës në rast se shfaqet një, gjë që do të bënte kërcimin modal në të majtë.

Nevojitet vetëm kur lartësia e modalit ndryshon ndërsa është e hapur.

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

Ngjarjet

Klasa modale e Bootstrap ekspozon disa ngjarje për t'u lidhur me funksionalitetin modal.

Të gjitha ngjarjet modale janë ndezur në vetë modalin (dmth. në <div class="modal">).

Lloji i ngjarjes Përshkrim
shfaq.bs.modale Kjo ngjarje ndizet menjëherë kur showthirret metoda e shembullit. Nëse shkaktohet nga një klikim, elementi i klikuar është i disponueshëm si relatedTargetveti e ngjarjes.
treguar.bs.modale Kjo ngjarje aktivizohet kur modali është bërë i dukshëm për përdoruesin (do të presë që kalimet CSS të përfundojnë). Nëse shkaktohet nga një klikim, elementi i klikuar është i disponueshëm si relatedTargetveti e ngjarjes.
fsheh.bs.modale Kjo ngjarje aktivizohet menjëherë kur hidethirret metoda e shembullit.
i fshehur.bs.modale Kjo ngjarje aktivizohet kur modali ka përfunduar së fshehuri nga përdoruesi (do të presë që tranzicioni i CSS të përfundojë).
ngarkuar.bs.modale Kjo ngjarje aktivizohet kur modali ka ngarkuar përmbajtjen duke përdorur remoteopsionin.
$('#myModal').on('hidden.bs.modal', function (e) {
  // do something...
})

Dropdowns dropdown.js

Shtoni menutë me zbritje në pothuajse çdo gjë me këtë shtojcë të thjeshtë, duke përfshirë shiritin e navigimit, skedat dhe pilulat.

Brenda një shirit navigimi

Brenda pilulave

Nëpërmjet atributeve të të dhënave ose JavaScript-it, shtojca me drop-down ndryshon përmbajtjen e fshehur (menytë me zbritje) duke ndërruar .openklasën në artikullin prind të listës.

Në pajisjet celulare, hapja e një menyje dropdown shton një .dropdown-backdropzonë si trokitje për mbylljen e menyve rënëse kur prekni jashtë menysë, një kërkesë për mbështetjen e duhur të iOS. Kjo do të thotë që kalimi nga një meny e hapur rënëse në një meny tjetër rënëse kërkon një trokitje shtesë në celular.

Shënim: data-toggle="dropdown"Atributi mbështetet për mbylljen e menyve rënëse në një nivel aplikacioni, kështu që është një ide e mirë ta përdorni gjithmonë atë.

Nëpërmjet atributeve të të dhënave

Shto data-toggle="dropdown"në një lidhje ose buton për të ndërruar një listë rënëse.

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

Për të mbajtur URL-të të paprekura me butonat e lidhjeve, përdorni data-targetatributin në vend të 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>

Përmes JavaScript

Thirrni skedarët e lëshimit përmes JavaScript:

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

data-toggle="dropdown"ende kërkohet

Pavarësisht nëse e thërrisni listën tuaj të lëshimit përmes JavaScript ose në vend të kësaj përdorni data-api, data-toggle="dropdown"kërkohet që të jetë gjithmonë i pranishëm në elementin e aktivizimit të listës rënëse.

Asnje

Ndryshon menynë rënëse të një navigimi të caktuar navigimi ose me skeda.

Të gjitha ngjarjet e renditjes lëshohen në .dropdown-menuelementin prind '.

Të gjitha ngjarjet me zbritje kanë një relatedTargetveti, vlera e së cilës është elementi ankorues i ndërrimit.

Lloji i ngjarjes Përshkrim
shfaq.bs.dropdown Kjo ngjarje ndizet menjëherë kur thirret metoda e shembullit të shfaqjes.
treguar.bs.dropdown Kjo ngjarje aktivizohet kur menyja rënëse është bërë e dukshme për përdoruesin (do të presë që kalimet CSS të përfundojnë).
fsheh.bs.dropdown Kjo ngjarje aktivizohet menjëherë kur është thirrur metoda e shembullit të fshehjes.
i fshehur.bs.dropdown Kjo ngjarje aktivizohet kur fshirja e listës me zbritje ka përfunduar nga përdoruesi (do të presë që tranzicioni i CSS të përfundojë).
$('#myDropdown').on('show.bs.dropdown', function () {
  // do something…
})

ScrollSpy scrollspy.js

Shembull në navbar

Shtojca ScrollSpy është për përditësimin automatik të objektivave të navigimit bazuar në pozicionin e lëvizjes. Lëvizni zonën poshtë shiritit të navigimit dhe shikoni ndryshimin e klasës aktive. Nën-artikujt në rënie do të theksohen gjithashtu.

@yndyrë

Dollakë reklamash keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi para se të shitën qui. Të drejtat e biçikletave nga ferma në tavolinë Tumblr sido që të jenë. Kardigan anim keffiyeh carles. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Triko Cosby Lomo jean pantallona të shkurtra, hoodie williamsburg minim qui ndoshta nuk keni dëgjuar për to dhe triko fondet e besimit culpa bionaftë Wes anderson estetike. Nihil me tatuazh accusamus, cred ironi bionaftë keffiyeh artisan ullamco consequat.

@mdo

skateboard me mustaqe Veniam marfa, mjekër fugiat i kulluar me pirun. Freegan beard aliqua cupidatat mcsweeney's vero. Cupidatat katër loko nisi, ea helvetica nulla carles. Kamion ushqimor me pulovra cosby me tatuazh, vinyl quis non freegan nga Mcsweeney. Lo-fi wes anderson +1 sartorial. Carles ushtrim jo estetik quis gentrify. Brooklyn adipising birrë artizanale zëvendës keytar deserunt.

një

Occaecat commodo aliqua delectus. Fap craft birra deserunt skateboard ea. Lomo të drejtat e biçikletave adipisicing banh mi, velit ea sunt niveli tjetër lokal kafe me origjinë të vetme në magna veniam. Vinyl me identifikim të lartë të jetës, park jehonë që konsiston në quis aliquip banh mi pitchfork. Vero VHS është e pakuptimtë. Konsectetur nisi DIY minim çantë mesazher. Cred ex in, iphone i qëndrueshëm delectus consectetur fanny pack.

dy

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 qese marfa çfarëdo kamion ushqimor delectus. Sapiente synth id supozohet. Locavore sed helvetica klishe ironi, thundercat që ndoshta nuk keni dëgjuar për to, si pasojë e hoodie pa gluten lo-fi fap aliquip. Labore elit placeat para se të shiteshin, terry richardson proident brunch nesciunt quis cosby triko pariatur keffiyeh ut helvetica artisan. Kardigan birrë craft seitan velit gati. VHS chambray laboris tempor veniam. Anim mollit minim commodo ulamco thundercats.

Përdorimi

Kërkon navigimin e Bootstrap

Scrollspy aktualisht kërkon përdorimin e një komponenti navigues Bootstrap për theksimin e duhur të lidhjeve aktive.

Kërkohen objektiva ID të zgjidhshme

Lidhjet e shiritit të navigimit duhet të kenë objektiva id të zgjidhshme. Për shembull, një <a href="#home">home</a>duhet të korrespondojë me diçka në DOM si <div id="home"></div>.

Elementet :visibleqë nuk synojnë janë injoruar

Elementet e synuar që nuk janë :visiblesipas jQuery do të shpërfillen dhe artikujt e tyre përkatës navigues nuk do të theksohen kurrë.

Kërkon pozicionim relativ

Pavarësisht nga metoda e zbatimit, scrollspy kërkon përdorimin e position: relative;elementit që po spiunoni. Në shumicën e rasteve kjo është <body>. Kur spiunoni elementë të ndryshëm nga <body>, sigurohuni që të keni një heightgrup dhe të overflow-y: scroll;aplikoni.

Nëpërmjet atributeve të të dhënave

Për të shtuar me lehtësi sjelljen e scrollspy në navigimin tuaj të shiritit të sipërm, shtoni data-spy="scroll"te elementi që dëshironi të spiunoni (më së shpeshti kjo do të ishte <body>). Më pas shtoni data-targetatributin me ID-në ose klasën e elementit prind të çdo .navkomponenti Bootstrap.

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>

Përmes JavaScript

Pasi të shtoni position: relative;në CSS tuaj, telefononi scrollspy përmes JavaScript:

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

Metodat

.scrollspy('refresh')

Kur përdorni scrollspy në lidhje me shtimin ose heqjen e elementeve nga DOM, do t'ju duhet të telefononi metodën e rifreskimit si kjo:

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

Opsione

Opsionet mund të kalohen nëpërmjet atributeve të të dhënave ose JavaScript. Për atributet e të dhënave, shtoni emrin e opsionit në data-, si në data-offset="".

Emri lloji default përshkrim
kompensuar numri 10 Piksele për t'u zhvendosur nga lart kur llogaritni pozicionin e rrotullës.

Ngjarjet

Lloji i ngjarjes Përshkrim
aktivizoj.bs.scrollspy Kjo ngjarje ndizet sa herë që një artikull i ri aktivizohet nga scrollspy.
$('#myScrollspy').on('activate.bs.scrollspy', function () {
  // do something…
})

Skedat e ndërrueshme tab.js

Shembuj skedash

Shtoni funksionalitetin e shpejtë dhe dinamik të skedës për të kaluar nëpër panelet e përmbajtjes lokale, madje edhe përmes menuve me zbritje. Skedat e mbivendosura nuk mbështeten.

Xhinset e papërpunuara me siguri nuk keni dëgjuar për to pantallona të shkurtra xhins Austin. Nesciunt tofu stumptown aliqua, pastruese mjeshtërore retro sintetike. Mustaqe klishe tempor, williamsburg carles vegan helvetica. Reprehenderit kasapi retro keffiyeh ëndrra sintetike. Cosby triko eu banh mi, qui irure terry richardson ish kallamar. Ju mund të vendosni për iphone. Seitan aliquip quis cardigan veshje amerikane, kasap 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.

Zgjat navigimin me skeda

Kjo shtojcë zgjeron komponentin e navigimit me skeda për të shtuar zona me tabela.

Përdorimi

Aktivizo skedat me skeda përmes JavaScript (secila skedë duhet të aktivizohet individualisht):

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

Ju mund të aktivizoni skedat individuale në disa mënyra:

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

Markup

Ju mund të aktivizoni navigimin e një skede ose pilule pa shkruar ndonjë JavaScript thjesht duke specifikuar data-toggle="tab"ose data-toggle="pill"mbi një element. Shtimi i klasave navdhe në skedë do të aplikojë stilimin e skedës Bootstrap , ndërsa shtimi i klasave dhe do të aplikojë stilimin e pilulave .nav-tabsulnavnav-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>

Efekti i zbehjes

Për të zbehur skedat, shtoni .fadenë secilën .tab-pane. Paneli i parë i skedës duhet gjithashtu .intë bëjë të dukshme përmbajtjen fillestare.

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

Metodat

$().tab

Aktivizon një element skede dhe një kontenier përmbajtjeje. Skeda duhet të ketë një data-targetose një hrefnyje kontejneri në DOM. Në shembujt e mësipërm, skedat janë <a>s me data-toggle="tab"atribute.

.tab('show')

Zgjedh skedën e dhënë dhe tregon përmbajtjen e lidhur me të. Çdo skedë tjetër që është përzgjedhur më parë bëhet e pazgjedhur dhe përmbajtja e lidhur me të fshihet. Kthehet te thirrësi përpara se të shfaqet paneli i skedës (dmth. përpara se të shown.bs.tabndodhë ngjarja).

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

Ngjarjet

Kur shfaqet një skedë e re, ngjarjet shfaqen në rendin e mëposhtëm:

  1. hide.bs.tab(në skedën aktuale aktive)
  2. show.bs.tab(në skedën që do të shfaqet)
  3. hidden.bs.tab(në skedën e mëparshme aktive, e njëjta si për hide.bs.tabngjarjen)
  4. shown.bs.tab(në skedën e saposhfaqur të sapoaktive, e njëjta si për show.bs.tabngjarjen)

Nëse asnjë skedë nuk ishte tashmë aktive, atëherë ngjarjet hide.bs.tabdhe hidden.bs.tabnuk do të hapen.

Lloji i ngjarjes Përshkrim
shfaq.bs.tab Kjo ngjarje aktivizohet në shfaqjen e skedave, por përpara se të shfaqet skeda e re. Përdorni event.targetdhe event.relatedTargetpër të synuar përkatësisht skedën aktive dhe skedën e mëparshme aktive (nëse disponohet).
treguar.bs.tab Kjo ngjarje ndizet në shfaqjen e skedave pasi të jetë shfaqur një skedë. Përdorni event.targetdhe event.relatedTargetpër të synuar përkatësisht skedën aktive dhe skedën e mëparshme aktive (nëse disponohet).
fsheh.bs.tab Kjo ngjarje ndizet kur duhet të shfaqet një skedë e re (dhe kështu skeda e mëparshme aktive duhet të fshihet). Përdorni event.targetdhe event.relatedTargetpër të synuar përkatësisht skedën aktuale aktive dhe skedën e re që do të aktivizohet së shpejti.
fshehur.bs.tab Kjo ngjarje ndizet pasi shfaqet një skedë e re (dhe kështu skeda e mëparshme aktive fshihet). Përdorni event.targetdhe event.relatedTargetpër të synuar përkatësisht skedën e mëparshme aktive dhe skedën e re aktive.
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
  e.target // newly activated tab
  e.relatedTarget // previous active tab
})

Këshillat e veglave.js

Frymëzuar nga shtojca e shkëlqyer jQuery.tipsy e shkruar nga Jason Frame; Këshillat e veglave janë një version i përditësuar, i cili nuk mbështetet në imazhe, përdor CSS3 për animacione dhe atribute të të dhënave për ruajtjen lokale të titujve.

Këshillat e veglave me tituj me gjatësi zero nuk shfaqen kurrë.

Shembuj

Zhvendosni mbi lidhjet e mëposhtme për të parë këshillat e veglave:

Pantallona të ngushta keffiyeh të nivelit tjetër që ndoshta nuk keni dëgjuar për to. Kabina e fotografive mjekër xhins të papërpunuar me çantë vegane për lajmëtarë stumptown. Veshjet amerikane 8-bitëshe nga ferma në tavolinë, kuinoa e qëndrueshme e mcsweeney's kanë një shambre vinyl terry richardson. Stumptown me mjekër, kardigane banh mi lomo thundercats. Tofu bionaftë williamsburg marfa, katër loko mcsweeney's cleanse chambray vegan. Një artizan me të vërtetë ironik , çfarëdo keytar , skenografi nga ferma në tavolinë banksy Austin twitter handle freegan cred raw xhins kafe me origjinë të vetme.

Këshillë e veglave statike

Katër opsione janë të disponueshme: lart, djathtas, poshtë dhe majtas rreshtuar.

Katër drejtime

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

Funksionaliteti i zgjedhjes

Për arsye të performancës, tiparet e të dhënave Tooltip dhe Popover janë të zgjedhur, që do të thotë se duhet t'i inicializoni vetë .

Një mënyrë për të inicializuar të gjitha këshillat e veglave në një faqe do të ishte përzgjedhja e tyre sipas data-toggleatributit të tyre:

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

Përdorimi

Shtojca e këshillës së veglave gjeneron përmbajtje dhe shënime sipas kërkesës, dhe si parazgjedhje vendos këshillat e veglave pas elementit të tyre të aktivizimit.

Aktivizoni këshillën e veglave përmes JavaScript:

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

Markup

Shënimi i kërkuar për një këshillë mjeti është vetëm një dataatribut dhe titlenë elementin HTML dëshironi të keni një këshillë mjeti. Shënimi i krijuar i një këshille veglash është mjaft i thjeshtë, megjithëse kërkon një pozicion (si parazgjedhje, i caktuar topnga shtojca).

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

Lidhje me shumë rreshta

Ndonjëherë dëshironi të shtoni një këshillë veglash në një hiperlidhje që mbështjell disa rreshta. Sjellja e parazgjedhur e shtojcës së këshillës së veglave është ta përqendroni atë horizontalisht dhe vertikalisht. Shtoni white-space: nowrap;në ankorat tuaja për të shmangur këtë.

Këshillat e veglave në grupet e butonave, grupet e hyrjes dhe tabelat kërkojnë cilësim të veçantë

Kur përdorni këshilla veglash për elementët brenda një .btn-groupose një .input-group, ose në elementët e lidhur me tabelën ( <td>, <th>, <tr>, , <thead>, <tbody>, <tfoot>), do të duhet të specifikoni opsionin container: 'body'(dokumentuar më poshtë) për të shmangur efektet anësore të padëshiruara (të tilla si zgjerimi i elementit dhe/ ose humbja e qosheve të saj të rrumbullakosura kur aktivizohet maja e mjetit).

Mos u përpiqni të shfaqni këshilla veglash për elementët e fshehur

Thirrja $(...).tooltip('show')kur është elementi i synuar display: none;do të bëjë që këshilla e veglës të pozicionohet gabimisht.

Këshilla mjetesh të arritshme për përdoruesit e tastierës dhe teknologjisë ndihmëse

Për përdoruesit që lundrojnë me tastierë, dhe veçanërisht përdoruesit e teknologjive ndihmëse, duhet të shtoni vetëm këshilla veglash te elementët e fokusuar në tastierë, si lidhjet, kontrollet e formularit ose ndonjë element arbitrar me një tabindex="0"atribut.

Këshillat e veglave për elementët me aftësi të kufizuara kërkojnë elemente mbështjellëse

Për të shtuar një këshillë mjeti në një element disabledose .disabled, vendoseni elementin brenda a <div>dhe aplikoni këshillën e veglave për atë <div>.

Opsione

Opsionet mund të kalohen nëpërmjet atributeve të të dhënave ose JavaScript. Për atributet e të dhënave, shtoni emrin e opsionit në data-, si në data-animation="".

Vini re se për arsye sigurie opsionet sanitize, sanitizeFndhe whiteListnuk mund të ofrohen duke përdorur atributet e të dhënave.

Emri Lloji E paracaktuar Përshkrim
animacion logjike e vërtetë Aplikoni një tranzicion të zbehjes së CSS në këshillën e veglave
enë varg | i rremë i rremë

Shton këshillën e veglave në një element specifik. Shembull: container: 'body'. Ky opsion është veçanërisht i dobishëm në atë që ju lejon të poziciononi këshillën e veglave në rrjedhën e dokumentit pranë elementit nxitës - gjë që do të parandalojë që këshilla e veglës të largohet nga elementi nxitës gjatë ndryshimit të madhësisë së dritares.

vonesë numri | Objekt 0

Vonesa e shfaqjes dhe fshehjes së këshillës së veglës (ms) - nuk vlen për llojin manual të shkrepjes

Nëse jepet një numër, vonesa zbatohet për të dy fshehjen/shfaqjen

Struktura e objektit është:delay: { "show": 500, "hide": 100 }

html logjike i rremë Futni HTML në këshillën e veglave. Nëse është false, textmetoda e jQuery do të përdoret për të futur përmbajtje në DOM. Përdorni tekst nëse jeni të shqetësuar për sulmet XSS.
vendosja varg | funksionin 'majë'

Si të poziciononi këshillën e veglave - krye | fund | majtas | drejtë | auto.
Kur specifikohet "auto", ai do të riorientojë në mënyrë dinamike këshillën e veglave. Për shembull, nëse vendosja është "auto majtas", këshilla e veglave do të shfaqet në të majtë kur është e mundur, përndryshe do të shfaqet djathtas.

Kur një funksion përdoret për të përcaktuar vendosjen, ai thirret me nyjen DOM si argument të parë dhe elementin nxitës nyjen DOM si të dytën. Konteksti thisështë vendosur në shembullin e këshillës së veglave.

përzgjedhës varg i rremë Nëse ofrohet një përzgjedhës, objektet e këshillës së veglave do t'u delegohen objektivave të specifikuara. Në praktikë, kjo përdoret për të aplikuar gjithashtu këshilla veglash për elementët DOM të shtuar në mënyrë dinamike ( jQuery.onmbështetje). Shihni këtë dhe një shembull informues .
shabllon varg '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'

Bazë HTML për t'u përdorur kur krijoni këshillën e veglave.

Maja e veglave titledo të injektohet në .tooltip-inner.

.tooltip-arrowdo të bëhet shigjeta e udhëzuesit.

Elementi më i jashtëm i mbështjellësit duhet të ketë .tooltipklasën.

titullin varg | funksionin ''

Vlera e parazgjedhur e titullit nëse titleatributi nuk është i pranishëm.

Nëse jepet një funksion, ai do të thirret me grupin e tij thistë referencës tek elementi të cilit i është bashkangjitur këshilla e veglave.

shkas varg "Fokusi rri pezull" Si aktivizohet këshilla e veglave - klikoni | rri pezull | fokus | manual. Ju mund të kaloni disa shkaktarë; ndani ato me një hapësirë. manualnuk mund të kombinohet me asnjë shkas tjetër.
porta e shikimit varg | objekt | funksionin { përzgjedhës: 'trup', mbushje: 0 }

Mban udhëzuesin brenda kufijve të këtij elementi. Shembull: viewport: '#viewport'ose{ "selector": "#viewport", "padding": 0 }

Nëse jepet një funksion, ai thirret me nyjen e elementit nxitës DOM si argument të vetëm. Konteksti thisështë vendosur në shembullin e këshillës së veglave.

dezinfektoj logjike e vërtetë Aktivizo ose çaktivizo dezinfektimin. Nëse aktivizohet 'template', 'content'dhe 'title'opsionet do të dezinfektohen.
listën e bardhë Objekt Vlera e paracaktuar Objekti që përmban atribute dhe etiketa të lejuara
dezinfektojFn null | funksionin i pavlefshëm Këtu mund të siguroni funksionin tuaj të dezinfektimit. Kjo mund të jetë e dobishme nëse preferoni të përdorni një bibliotekë të dedikuar për të kryer dezinfektim.

Atributet e të dhënave për këshilla individuale të veglave

Opsionet për këshilla të veglave individuale mund të specifikohen në mënyrë alternative nëpërmjet përdorimit të atributeve të të dhënave, siç shpjegohet më sipër.

Metodat

$().tooltip(options)

Bashkangjit një mbajtës udhëzues në një koleksion elementesh.

.tooltip('show')

Zbulon udhëzuesin e një elementi. Kthehet te thirrësi përpara se këshilla e veglave të shfaqet (dmth. përpara se të shown.bs.tooltipndodhë ngjarja). Kjo konsiderohet si një aktivizim "manual" i këshillës së veglave. Këshillat e veglave me tituj me gjatësi zero nuk shfaqen kurrë.

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

.tooltip('hide')

Fsheh udhëzuesin e një elementi. Kthehet te thirrësi përpara se këshilla e veglave të jetë fshehur (dmth. përpara se të hidden.bs.tooltipndodhë ngjarja). Kjo konsiderohet si një aktivizim "manual" i këshillës së veglave.

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

.tooltip('toggle')

Ndryshon udhëzuesin e një elementi. Kthehet te thirrësi përpara se këshilla e veglave të jetë shfaqur ose fshehur (dmth. përpara se të ndodhë ngjarja shown.bs.tooltipose ). hidden.bs.tooltipKjo konsiderohet si një aktivizim "manual" i këshillës së veglave.

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

.tooltip('destroy')

Fsheh dhe shkatërron udhëzuesin e një elementi. Këshillat e veglave që përdorin delegimin (të cilat krijohen duke përdorur opsionin selector) nuk mund të shkatërrohen individualisht në elementët e aktivizimit pasardhës.

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

Ngjarjet

Lloji i ngjarjes Përshkrim
shfaq.bs.tip mjeti Kjo ngjarje ndizet menjëherë kur showthirret metoda e shembullit.
treguar.bs.tooltip Kjo ngjarje aktivizohet kur këshilla e veglave është bërë e dukshme për përdoruesin (do të presë që kalimet CSS të përfundojnë).
fsheh.bs.tooltip Kjo ngjarje aktivizohet menjëherë kur hidethirret metoda e shembullit.
i fshehur.bs.tooltip Kjo ngjarje aktivizohet kur këshilla e veglave ka përfunduar së fshehuri nga përdoruesi (do të presë që të plotësohen tranzicionet CSS).
futur.bs.tooltip Kjo ngjarje aktivizohet pas show.bs.tooltipngjarjes kur shablloni i këshillës së veglave është shtuar në DOM.
$('#myTooltip').on('hidden.bs.tooltip', function () {
  // do something…
})

Popovers popover.js

Shtoni mbivendosje të vogla të përmbajtjes, si ato në iPad, në çdo element për strehimin e informacionit dytësor.

Popover-et, titulli dhe përmbajtja e të cilëve janë me gjatësi zero, nuk shfaqen kurrë.

Varësia e shtojcave

Popoverët kërkojnë që shtojca e këshillës së veglave të përfshihet në versionin tuaj të Bootstrap.

Funksionaliteti i zgjedhjes

Për arsye të performancës, tiparet e të dhënave Tooltip dhe Popover janë të zgjedhur, që do të thotë se duhet t'i inicializoni vetë .

Një mënyrë për të inicializuar të gjitha popover-et në një faqe do të ishte përzgjedhja e tyre sipas data-toggleatributit të tyre:

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

Popoveret në grupet e butonave, grupet e hyrjes dhe tabelat kërkojnë cilësim të veçantë

Kur përdorni popover në elementë brenda një .btn-groupose një .input-group, ose në elemente të lidhura me tabelën ( <td>, <th>, <tr>, <thead>, <tbody>, <tfoot>), do të duhet të specifikoni opsionin container: 'body'(të dokumentuar më poshtë) për të shmangur efektet anësore të padëshiruara (siç është zgjerimi i elementit dhe/ ose humbja e qosheve të saj të rrumbullakosura kur aktivizohet popover).

Mos u mundoni të shfaqni popover në elementë të fshehur

Thirrja $(...).popover('show')kur është elementi i synuar display: none;do të bëjë që popover-i të pozicionohet gabimisht.

Popover-et në elementët me aftësi të kufizuara kërkojnë elemente mbështjellëse

Për të shtuar një popover në një disabledose .disabledelement, vendoseni elementin brenda një <div>dhe aplikoni popover-in në <div>vend të tij.

Lidhje me shumë rreshta

Ndonjëherë ju dëshironi të shtoni një popover në një hiperlidhje që mbështjell disa rreshta. Sjellja e parazgjedhur e shtojcës popover është ta përqendroni atë horizontalisht dhe vertikalisht. Shtoni white-space: nowrap;në ankorat tuaja për të shmangur këtë.

Shembuj

Popover statike

Katër opsione janë të disponueshme: lart, djathtas, poshtë dhe majtas rreshtuar.

Top popover

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

Popover drejtë

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

Fund popover

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

Popover u largua

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

Demoja e drejtpërdrejtë

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

Katër drejtime

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

Hiqe në klikim tjetër

Përdorni focuskëmbëzën për të hequr popover-et në klikimin tjetër që bën përdoruesi.

Kërkohet shënjimi specifik për heqjen në klikim tjetër

Për sjelljen e duhur të ndër-shfletuesit dhe ndër-platformës, duhet të përdorni <a>etiketën, jo etiketën <button>, dhe gjithashtu duhet të përfshini atributet role="button"dhe .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>

Përdorimi

Aktivizo popover-et përmes JavaScript:

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

Opsione

Opsionet mund të kalohen nëpërmjet atributeve të të dhënave ose JavaScript. Për atributet e të dhënave, shtoni emrin e opsionit në data-, si në data-animation="".

Vini re se për arsye sigurie opsionet sanitize, sanitizeFndhe whiteListnuk mund të ofrohen duke përdorur atributet e të dhënave.

Emri Lloji E paracaktuar Përshkrim
animacion logjike e vërtetë Aplikoni një tranzicion të zbehjes së CSS në popover
enë varg | i rremë i rremë

Shton popover-in në një element specifik. Shembull: container: 'body'. Ky opsion është veçanërisht i dobishëm në atë që ju lejon të poziciononi popover-in në rrjedhën e dokumentit pranë elementit nxitës - gjë që do të parandalojë që popover-i të largohet nga elementi nxitës gjatë një ndryshimi të madhësisë së dritares.

përmbajtjen varg | funksionin ''

Vlera e parazgjedhur e përmbajtjes nëse data-contentatributi nuk është i pranishëm.

Nëse jepet një funksion, ai do të thirret me grupin e tij thistë referencës tek elementi të cilit i është bashkangjitur popover.

vonesë numri | Objekt 0

Vonesa e shfaqjes dhe fshehjes së popover-it (ms) - nuk vlen për llojin manual të këmbëzës

Nëse jepet një numër, vonesa zbatohet për të dy fshehjen/shfaqjen

Struktura e objektit është:delay: { "show": 500, "hide": 100 }

html logjike i rremë Fut HTML në popover. Nëse është false, textmetoda e jQuery do të përdoret për të futur përmbajtje në DOM. Përdorni tekst nëse jeni të shqetësuar për sulmet XSS.
vendosja varg | funksionin 'e drejt'

Si të poziciononi popover - top | fund | majtas | drejtë | auto.
Kur specifikohet "auto", ai do të riorientojë dinamikisht popover-in. Për shembull, nëse vendosja është "auto majtas", popover do të shfaqet në të majtë kur është e mundur, përndryshe do të shfaqet djathtas.

Kur një funksion përdoret për të përcaktuar vendosjen, ai thirret me nyjen DOM popover si argument të parë dhe elementin nxitës DOM nyjen si të dytën. Konteksti thisështë vendosur në shembullin popover.

përzgjedhës varg i rremë Nëse ofrohet një përzgjedhës, objektet popover do t'u delegohen objektivave të specifikuara. Në praktikë, kjo përdoret për të mundësuar që përmbajtja dinamike HTML të ketë shtuar popover. Shihni këtë dhe një shembull informues .
shabllon varg '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'

Bazë HTML për t'u përdorur kur krijoni popover.

Popover-i titledo të injektohet në .popover-title.

Popover-i contentdo të injektohet në .popover-content.

.arrowdo të bëhet shigjeta e popoverit.

Elementi më i jashtëm i mbështjellësit duhet të ketë .popoverklasën.

titullin varg | funksionin ''

Vlera e parazgjedhur e titullit nëse titleatributi nuk është i pranishëm.

Nëse jepet një funksion, ai do të thirret me grupin e tij thistë referencës tek elementi të cilit i është bashkangjitur popover.

shkas varg 'kliko' Si shkaktohet popover - klikoni | rri pezull | fokus | manual. Ju mund të kaloni disa shkaktarë; ndani ato me një hapësirë. manualnuk mund të kombinohet me asnjë shkas tjetër.
porta e shikimit varg | objekt | funksionin { përzgjedhës: 'trup', mbushje: 0 }

Mban popoverin brenda kufijve të këtij elementi. Shembull: viewport: '#viewport'ose{ "selector": "#viewport", "padding": 0 }

Nëse jepet një funksion, ai thirret me nyjen e elementit nxitës DOM si argument të vetëm. Konteksti thisështë vendosur në shembullin popover.

dezinfektoj logjike e vërtetë Aktivizo ose çaktivizo dezinfektimin. Nëse aktivizohet 'template', 'content'dhe 'title'opsionet do të dezinfektohen.
listën e bardhë Objekt Vlera e paracaktuar Objekti që përmban atribute dhe etiketa të lejuara
dezinfektojFn null | funksionin i pavlefshëm Këtu mund të siguroni funksionin tuaj të dezinfektimit. Kjo mund të jetë e dobishme nëse preferoni të përdorni një bibliotekë të dedikuar për të kryer dezinfektim.

Atributet e të dhënave për popoverët individualë

Opsionet për popover-et individuale mund të specifikohen në mënyrë alternative përmes përdorimit të atributeve të të dhënave, siç shpjegohet më sipër.

Metodat

$().popover(options)

Inicializon popover-et për një koleksion elementesh.

.popover('show')

Zbulon popoverin e një elementi. Kthehet te thirrësi përpara se të shfaqet në të vërtetë popoveri (dmth. përpara se shown.bs.popoverngjarja të ndodhë). Kjo konsiderohet si një nxitje "manuale" e popoverit. Popover-et, titulli dhe përmbajtja e të cilëve janë me gjatësi zero, nuk shfaqen kurrë.

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

.popover('hide')

Fsheh popoverin e një elementi. Kthehet te thirrësi përpara se popover të jetë fshehur në të vërtetë (dmth. përpara se të hidden.bs.popoverndodhë ngjarja). Kjo konsiderohet si një nxitje "manuale" e popoverit.

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

.popover('toggle')

Ndryshon popover-in e një elementi. Kthehet te thirrësi përpara se popover-i të jetë shfaqur ose fshehur (dmth. përpara se të ndodhë ngjarja shown.bs.popoverose ). hidden.bs.popoverKjo konsiderohet si një nxitje "manuale" e popoverit.

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

.popover('destroy')

Fsheh dhe shkatërron popoverin e një elementi. Popoverët që përdorin delegimin (të cilat krijohen duke përdorur opsionin selector) nuk mund të shkatërrohen individualisht në elementët e aktivizimit pasardhës.

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

Ngjarjet

Lloji i ngjarjes Përshkrim
shfaq.bs.popover Kjo ngjarje ndizet menjëherë kur showthirret metoda e shembullit.
treguar.bs.popover Kjo ngjarje aktivizohet kur popoveri është bërë i dukshëm për përdoruesin (do të presë që kalimet CSS të përfundojnë).
fsheh.bs.popover Kjo ngjarje aktivizohet menjëherë kur hidethirret metoda e shembullit.
i fshehur.bs.popover Kjo ngjarje aktivizohet kur popover-i ka përfunduar së fshehuri nga përdoruesi (do të presë që tranzicioni i CSS të përfundojë).
futur.bs.popover Kjo ngjarje aktivizohet pas show.bs.popoverngjarjes kur shablloni popover është shtuar në DOM.
$('#myPopover').on('hidden.bs.popover', function () {
  // do something…
})

Mesazhet e alarmit alert.js

Shembuj sinjalizimesh

Shto funksionin e heqjes dorë në të gjitha mesazhet e alarmit me këtë shtesë.

Kur përdorni një .closebuton, ai duhet të jetë fëmija i parë i tij .alert-dismissibledhe asnjë përmbajtje teksti nuk mund të dalë përpara tij në shënim.

Përdorimi

Thjesht shtoni data-dismiss="alert"në butonin tuaj të mbylljes për të dhënë automatikisht një funksion të mbylljes së alarmit. Mbyllja e një sinjalizimi e heq atë nga DOM.

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

Në mënyrë që sinjalizimet tuaja të përdorin animacion kur mbyllen, sigurohuni që ato të kenë klasat .fadedhe .intë aplikuara tashmë për to.

Metodat

$().alert()

Bën një alarm të dëgjojë për ngjarjet e klikimeve në elementët pasardhës që kanë data-dismiss="alert"atributin. (Nuk është e nevojshme kur përdorni inicializimin automatik të data-api.)

$().alert('close')

Mbyll një alarm duke e hequr atë nga DOM. Nëse klasat .fadedhe .injanë të pranishme në element, sinjalizimi do të shuhet përpara se të hiqet.

Ngjarjet

Shtojca e alarmit të Bootstrap ekspozon disa ngjarje për t'u lidhur me funksionalitetin e alarmit.

Lloji i ngjarjes Përshkrim
mbyll.bs.lajmër Kjo ngjarje ndizet menjëherë kur closethirret metoda e shembullit.
mbyllur.bs.lajmëruese Kjo ngjarje aktivizohet kur sinjalizimi është mbyllur (do të presë që kalimet CSS të përfundojnë).
$('#myAlert').on('closed.bs.alert', function () {
  // do something…
})

Butoni i butonave.js

Bëni më shumë me butona. Kontrolloni gjendjet e butonit ose krijoni grupe butonash për më shumë komponentë si shiritat e veglave.

Pajtueshmëria me shfletues

Firefox vazhdon nga gjendjet e kontrollit (paaftësia dhe kontrolli) përgjatë ngarkesave të faqeve . Një zgjidhje për këtë është përdorimi autocomplete="off". Shiko defektin #654072 të Mozilla -s .

Shtetërore

Shto data-loading-text="Loading..."për të përdorur një gjendje ngarkimi në një buton.

Ky funksion është i vjetëruar që nga v3.3.5 dhe është hequr në v4.

Përdorni cilindo shtet që ju pëlqen!

Për hir të këtij demonstrimi, ne po përdorim data-loading-textdhe $().button('loading'), por ky nuk është i vetmi shtet që mund të përdorni. Shihni më shumë për këtë më poshtë në $().button(string)dokumentacion .

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

Ndërrim i vetëm

Shto data-toggle="button"për të aktivizuar ndërrimin në një buton të vetëm.

Butonat e ndërruar paraprakisht kanë nevojë .activedhearia-pressed="true"

Për butonat e ndërruar paraprakisht, duhet të shtoni .activeklasën dhe aria-pressed="true"atributin tek buttonvetja.

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

Kutia e kontrollit / Radio

Shtoni data-toggle="buttons"në një .btn-groupkuti kontrolli ose hyrje radioje për të mundësuar ndryshimin në stilet e tyre përkatëse.

Duhen opsione të parazgjedhura.active

Për opsionet e parazgjedhura, duhet ta shtoni vetë .activeklasën në hyrje label.

Gjendja e kontrolluar vizuale përditësohet vetëm me klikim

Nëse gjendja e zgjedhur e një butoni të kutisë së kontrollit përditësohet pa ndezur një clickngjarje në buton (p.sh. nëpërmjet <input type="reset">ose nëpërmjet vendosjes së checkedvetive të hyrjes), do t'ju duhet ta ndërroni vetë .activeklasën në hyrje 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>

Metodat

$().button('toggle')

Aktivizon gjendjen e shtytjes. I jep butonit pamjen se është aktivizuar.

$().button('reset')

Resets button state - swaps text to original text. This method is asynchronous and returns before the resetting has actually completed.

$().button(string)

Swaps text to any data defined text state.

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

Collapse collapse.js

Flexible plugin that utilizes a handful of classes for easy toggle behavior.

Plugin dependency

Collapse requires the transitions plugin to be included in your version of Bootstrap.

Example

Click the buttons below to show and hide another element via class changes:

  • .collapse hides content
  • .collapsing is applied during transitions
  • .collapse.in shows content

You can use a link with the href attribute, or a button with the data-target attribute. In both cases, the data-toggle="collapse" is required.

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>

Accordion example

Extend the default collapse behavior to create an accordion with the panel component.

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

It's also possible to swap out .panel-bodys with .list-groups.

  • Bootply
  • One itmus ac facilin
  • Second eros

Make expand/collapse controls accessible

Be sure to add aria-expanded to the control element. This attribute explicitly defines the current state of the collapsible element to screen readers and similar assistive technologies. If the collapsible element is closed by default, it should have a value of aria-expanded="false". If you've set the collapsible element to be open by default using the in class, set aria-expanded="true" on the control instead. The plugin will automatically toggle this attribute based on whether or not the collapsible element has been opened or closed.

Additionally, if your control element is targeting a single collapsible element – i.e. the data-target attribute is pointing to an id selector – you may add an additional aria-controls attribute to the control element, containing the id of the collapsible element. Modern screen readers and similar assistive technologies make use of this attribute to provide users with additional shortcuts to navigate directly to the collapsible element itself.

Usage

The collapse plugin utilizes a few classes to handle the heavy lifting:

  • .collapse hides the content
  • .collapse.in shows the content
  • .collapsing is added when the transition starts, and removed when it finishes

These classes can be found in component-animations.less.

Via data attributes

Just add data-toggle="collapse" and a data-target to the element to automatically assign control of a collapsible element. The data-target attribute accepts a CSS selector to apply the collapse to. Be sure to add the class collapse to the collapsible element. If you'd like it to default open, add the additional class in.

To add accordion-like group management to a collapsible control, add the data attribute data-parent="#selector". Refer to the demo to see this in action.

Via JavaScript

Enable manually with:

$('.collapse').collapse()

Options

Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-parent="".

Name type default description
parent selector false If a selector is provided, then all collapsible elements under the specified parent will be closed when this collapsible item is shown. (similar to traditional accordion behavior - this is dependent on the panel class)
toggle boolean true Toggles the collapsible element on invocation

Methods

.collapse(options)

Activates your content as a collapsible element. Accepts an optional options object.

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

.collapse('toggle')

Toggles a collapsible element to shown or hidden. Returns to the caller before the collapsible element has actually been shown or hidden (i.e. before the shown.bs.collapse or hidden.bs.collapse event occurs).

.collapse('show')

Shows a collapsible element. Returns to the caller before the collapsible element has actually been shown (i.e. before the shown.bs.collapse event occurs).

.collapse('hide')

Hides a collapsible element. Returns to the caller before the collapsible element has actually been hidden (i.e. before the hidden.bs.collapse event occurs).

Events

Bootstrap's collapse class exposes a few events for hooking into collapse functionality.

Event Type Description
show.bs.collapse This event fires immediately when the show instance method is called.
shown.bs.collapse This event is fired when a collapse element has been made visible to the user (will wait for CSS transitions to complete).
hide.bs.collapse This event is fired immediately when the hide method has been called.
hidden.bs.collapse This event is fired when a collapse element has been hidden from the user (will wait for CSS transitions to complete).
$('#myCollapsible').on('hidden.bs.collapse', function () {
  // do something…
})

Carousel carousel.js

A slideshow component for cycling through elements, like a carousel. Nested carousels are not supported.

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

Optional captions

Add captions to your slides easily with the .carousel-caption element within any .item. Place just about any optional HTML within there and it will be automatically aligned and formatted.

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

Multiple carousels

Carousels require the use of an id on the outermost container (the .carousel) for carousel controls to function properly. When adding multiple carousels, or when changing a carousel's id, be sure to update the relevant controls.

Via data attributes

Use data attributes to easily control the position of the carousel. data-slide accepts the keywords prev or next, which alters the slide position relative to its current position. Alternatively, use data-slide-to to pass a raw slide index to the carousel data-slide-to="2", which shifts the slide position to a particular index beginning with 0.

The data-ride="carousel" attribute is used to mark a carousel as animating starting at page load. It cannot be used in combination with (redundant and unnecessary) explicit JavaScript initialization of the same carousel.

Via JavaScript

Call carousel manually with:

$('.carousel').carousel()

Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-interval="".

Name type default description
interval number 5000 The amount of time to delay between automatically cycling an item. If false, carousel will not automatically cycle.
pause string | null "hover" If set to "hover", pauses the cycling of the carousel on mouseenter and resumes the cycling of the carousel on mouseleave. If set to null, hovering over the carousel won't pause it.
wrap boolean true Whether the carousel should cycle continuously or have hard stops.
keyboard boolean true Whether the carousel should react to keyboard events.

Initializes the carousel with an optional options object and starts cycling through items.

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

Cycles through the carousel items from left to right.

Stops the carousel from cycling through items.

Cycles the carousel to a particular frame (0 based, similar to an array).

Cycles to the previous item.

Cycles to the next item.

Bootstrap's carousel class exposes two events for hooking into carousel functionality.

Both events have the following additional properties:

  • direction: The direction in which the carousel is sliding (either "left" or "right").
  • relatedTarget: The DOM element that is being slid into place as the active item.

All carousel events are fired at the carousel itself (i.e. at the <div class="carousel">).

Event Type Description
slide.bs.carousel This event fires immediately when the slide instance method is invoked.
slid.bs.carousel This event is fired when the carousel has completed its slide transition.
$('#myCarousel').on('slide.bs.carousel', function () {
  // do something…
})

Affix affix.js

Example

The affix plugin toggles position: fixed; on and off, emulating the effect found with position: sticky;. The subnavigation on the right is a live demo of the affix plugin.


Usage

Use the affix plugin via data attributes or manually with your own JavaScript. In both situations, you must provide CSS for the positioning and width of your affixed content.

Note: Do not use the affix plugin on an element contained in a relatively positioned element, such as a pulled or pushed column, due to a Safari rendering bug.

Positioning via CSS

The affix plugin toggles between three classes, each representing a particular state: .affix, .affix-top, and .affix-bottom. You must provide the styles, with the exception of position: fixed; on .affix, for these classes yourself (independent of this plugin) to handle the actual positions.

Here's how the affix plugin works:

  1. To start, the plugin adds .affix-top to indicate the element is in its top-most position. At this point no CSS positioning is required.
  2. Scrolling past the element you want affixed should trigger the actual affixing. This is where .affix replaces .affix-top and sets position: fixed; (provided by Bootstrap's CSS).
  3. If a bottom offset is defined, scrolling past it should replace .affix with .affix-bottom. Since offsets are optional, setting one requires you to set the appropriate CSS. In this case, add position: absolute; when necessary. The plugin uses the data attribute or JavaScript option to determine where to position the element from there.

Follow the above steps to set your CSS for either of the usage options below.

Via data attributes

To easily add affix behavior to any element, just add data-spy="affix" to the element you want to spy on. Use offsets to define when to toggle the pinning of an element.

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

Via JavaScript

Call the affix plugin via JavaScript:

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

Options

Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-offset-top="200".

Name type default description
offset number | function | object 10 Pixels to offset from screen when calculating position of scroll. If a single number is provided, the offset will be applied in both top and bottom directions. To provide a unique, bottom and top offset just provide an object offset: { top: 10 } or offset: { top: 10, bottom: 5 }. Use a function when you need to dynamically calculate an offset.
target selector | node | jQuery element the window object Specifies the target element of the affix.

Methods

.affix(options)

Activates your content as affixed content. Accepts an optional options object.

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

.affix('checkPosition')

Recalculates the state of the affix based on the dimensions, position, and scroll position of the relevant elements. The .affix, .affix-top, and .affix-bottom classes are added to or removed from the affixed content according to the new state. This method needs to be called whenever the dimensions of the affixed content or the target element are changed, to ensure correct positioning of the affixed content.

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

Events

Bootstrap's affix plugin exposes a few events for hooking into affix functionality.

Event Type Description
affix.bs.affix This event fires immediately before the element has been affixed.
affixed.bs.affix This event is fired after the element has been affixed.
affix-top.bs.affix Kjo ngjarje ndizet menjëherë përpara se elementi të jetë ngjitur në krye.
affixed-top.bs.affix Kjo ngjarje aktivizohet pasi elementi është ngjitur në krye.
affix-bottom.bs.affix Kjo ngjarje ndizet menjëherë përpara se elementi të vendoset në fund.
affixed-bottom.bs.affix Kjo ngjarje aktivizohet pasi elementi është ngjitur në fund.