Esasy mazmuna geçiň Docs nawigasiýasyna geçiň
in English

Popovers

Sahypaňyzdaky islendik elemente iOS-da tapylanlar ýaly Bootstrap popoversini goşmak üçin resminamalar we mysallar.

Gysgaça syn

Açylýan plugin ulanylanda bilmeli zatlar:

  • Popovers ýerleşmek üçin 3-nji tarap kitaphanasy Popper -ä bil baglaýar . Bootstrap.js-dan öň popper.min.js goşmaly ýa -da popoversiň işlemegi üçin Popper-i ulanmaly bootstrap.bundle.min.js/ ulanmaly bootstrap.bundle.js!
  • Popovers garaşlylyk hökmünde gurallar pluginini talap edýär.
  • Popovers öndürijilik sebäplerine görä saýlanýar, şonuň üçin olary özüňiz başlamaly .
  • Nol uzynlygy titlewe contentbahalary hiç haçan açylmaz.
  • container: 'body'Has çylşyrymly komponentlerde kynçylyk döretmezligi kesgitläň (giriş toparlarymyz, düwme toparlarymyz we ş.m.) .
  • Gizlin elementlerde açylan popowerler işlemez.
  • Elementler .disabledýa-da disabledelementler üçin ýazgylar, örtük elementinde başlamaly.
  • Birnäçe setir bilen gurşalan labyrlardan başlanda, gämi duralgalarynyň umumy giňliginiň arasynda jemlener. Bu gylyk-häsiýetden gaça durmak üçin s-leri .text-nowrapulanyň .<a>
  • Popovers degişli elementleri DOM-dan aýrylmazdan ozal gizlenmeli.
  • Popovers kölegeli DOM içindäki bir elementiň kömegi bilen ýüze çykyp biler.
Düzgüne görä, bu komponent, aç-açan rugsat berilmeýän islendik HTML elementini ýoklaýan içerki arassalaýjy ulanýar. Has giňişleýin maglumat üçin JavaScript resminamalarymyzdaky arassaçylyk bölümine serediň.
Bu komponentiň animasiýa täsiri prefers-reduced-motionmedia talaplaryna baglydyr. Elýeterlilik resminamalarymyzyň azaldylan hereket bölümine serediň .

Käbir mysallar bilen popoversiň nähili işleýändigini görmek üçin okaň.

Mysal: Her ýerde popovers açyň

Sahypadaky ähli açyjylary başlamagyň bir usuly, olary data-bs-toggleatributlary boýunça saýlamak bolar:

var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
  return new bootstrap.Popover(popoverTriggerEl)
})

Mysal: containerOpsiýany ulanmak

Esasy elementde popover-a päsgel berýän käbir stilleriňiz bar bolsa, containeraç-açan HTML-iň ýerine şol elementiň içinde peýda bolmagy üçin bir adat görkezmek islärsiňiz.

var popover = new bootstrap.Popover(document.querySelector('.example-popover'), {
  container: 'body'
})

Mysal

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

Dört ugur

Dört wariant bar: ýokarky, sag, aşaky we çep deňleşdirilen. RTL-de Bootstrap ulanylanda görkezmeler aýnalanýar.

<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="top" data-bs-content="Top popover">
  Popover on top
</button>
<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="right" data-bs-content="Right popover">
  Popover on right
</button>
<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="bottom" data-bs-content="Bottom popover">
  Popover on bottom
</button>
<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="left" data-bs-content="Left popover">
  Popover on left
</button>

Indiki gezek basyň

focusUlanyjynyň üýtgetmek elementinden başga bir elementiň indiki gezek basylmagynda triggerleri ulanyň .

Işden çykarmak üçin indiki basmak üçin zerur bellik

Dogry kross-brauzer we platforma bilen özüňi alyp barmak üçin belligi däl -de, <a>belligi ulanmaly, bir atribut hem goşmaly .<button>tabindex

<a tabindex="0" class="btn btn-lg btn-danger" role="button" data-bs-toggle="popover" data-bs-trigger="focus" title="Dismissible popover" data-bs-content="And here's some amazing content. It's very engaging. Right?">Dismissible popover</a>
var popover = new bootstrap.Popover(document.querySelector('.popover-dismiss'), {
  trigger: 'focus'
})

Öçürilen elementler

Sypaty bolan elementler disabledinteraktiw däl, ýagny ulanyjylar bir popover (ýa-da gural görkezmesi) açmak üçin basyp ýa-da basyp bilmeýärler. Iş usuly hökmünde, aç-açan önümi bir gabykdan <div>ýa-da iň <span>oňat klawiatura gönükdirilen ulanyp başlarsyňyz tabindex="0".

Maýyp popover triggerleri üçin, popover ulanyjylaryňyza ýapyk elemente basmagynadata-bs-trigger="hover focus" garaşmazlygy sebäpli derrew wizual seslenme bolup görünmegini isläp bilersiňiz .

<span class="d-inline-block" tabindex="0" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-content="Disabled popover">
  <button class="btn btn-primary" type="button" disabled>Disabled button</button>
</span>

Sass

Üýtgeýjiler

$popover-font-size:                 $font-size-sm;
$popover-bg:                        $white;
$popover-max-width:                 276px;
$popover-border-width:              $border-width;
$popover-border-color:              rgba($black, .2);
$popover-border-radius:             $border-radius-lg;
$popover-inner-border-radius:       subtract($popover-border-radius, $popover-border-width);
$popover-box-shadow:                $box-shadow;

$popover-header-bg:                 shade-color($popover-bg, 6%);
$popover-header-color:              $headings-color;
$popover-header-padding-y:          .5rem;
$popover-header-padding-x:          $spacer;

$popover-body-color:                $body-color;
$popover-body-padding-y:            $spacer;
$popover-body-padding-x:            $spacer;

$popover-arrow-width:               1rem;
$popover-arrow-height:              .5rem;
$popover-arrow-color:               $popover-bg;

$popover-arrow-outer-color:         fade-in($popover-border-color, .05);

Ulanylyşy

JavaScript arkaly açylýan ýerleri açyň:

var exampleEl = document.getElementById('example')
var popover = new bootstrap.Popover(exampleEl, options)

Klawiatura we kömekçi tehnologiýa ulanyjylary üçin popovers işlemek

Klawiatura ulanyjylarynyň açylýan ýerleriňizi işjeňleşdirmegine rugsat bermek üçin olary diňe klawiatura gönükdirilen we interaktiw (baglanyşyklar ýa-da forma dolandyryşlary ýaly) HTML elementlerine goşmaly. Hususy HTML elementleri (meselem <span>) tabindex="0"atribut goşmak arkaly ünsi jemläp boljakdygyna garamazdan, bu klawiatura ulanyjylary üçin interaktiw däl elementlere potensial gaharlandyryjy we bulaşyk goýma duralgalaryny goşar we häzirki wagtda köp kömekçi tehnologiýalar bu ýagdaýda popoveriň mazmunyny yglan etmeýär. . hoverMundan başga-da, diňe açýanlaryňyz üçin trigger hökmünde bil baglamaň , sebäbi bu klawiatura ulanyjylary üçin itergi bermez.

Opsiýa bilen popoverslere baý, gurluşly HTML goýup bilersiňiz html, aşa köp mazmun goşmazlygy maslahat berýäris. aria-describedbyHäzirki wagtda açylýan işleriň usuly, bir gezek görkezilenden soň, mazmuny atribut bilen trigger elementine baglydyr. Netijede, açylan mazmunyň tutuşlygyna tehnologiýa ulanyjylaryna bir uzyn, üznüksiz akym hökmünde kömek etmek yglan ediler.

Mundan başga-da, girýän ýeriňize interaktiw dolandyryşlary (forma elementleri ýa-da baglanyşyklar ýaly) goşmak mümkin bolsa-da (bu elementleri allowListrugsat berlen atributlara we belliklere goşmak bilen), häzirki wagtda açylýan klawiaturanyň fokus tertibini dolandyrmaýandygyny biliň. Klawiatura ulanyjy açylýan ýerini açanda, ünsi tüweleme elementine gönükdirýär we popover adatça resminamanyň gurluşynda triggeri yzarlamaýandygy sebäpli, öňe gitmek / basmak kepilligi ýokTABklawiatura ulanyjysyny açylýan ýerine geçirer. Gysgaça aýdylanda, aç-açan ýerine interaktiw dolandyryşlary goşmak, bu dolandyryşlary klawiatura ulanyjylary we kömekçi tehnologiýalary ulanyjylar üçin elýeterli / ulanyp bolmajak ýa-da iň bolmanda logiki däl fokus tertibini döredip biler. Bu ýagdaýlarda, ýerine modal gepleşik penjiresini ulanmagy göz öňünde tutuň.

Görnüş

Opsiýalar maglumat atributlary ýa-da JavaScript arkaly geçirilip bilner. Maglumat atributlary üçin, opsiýanyň adyny data-bs-bolşy ýaly goşuň data-bs-animation="". Opsiýalary maglumat atributlary arkaly geçireniňizde, opsiýanyň adynyň görnüşini kamelCase-den kebab-kase üýtgediň. Mysal üçin, ulanmagyň ýerine data-bs-customClass="beautifier"ulanyň data-bs-custom-class="beautifier".

Howpsuzlyk sebäpli sanitize, sanitizeFnwe allowListatributlary maglumat atributlaryny ulanyp üpjün edip bolmajakdygyny unutmaň.
Ady Görnüşi Bellenen Düşündiriş
animation boolean true Açylýan ýerine CSS solgun geçişini ulanyň
container setir | element | ýalan false

Açylýan ýeri belli bir elemente goşýar. Mysal : container: 'body'. Bu opsiýa, esasanam, penjiräniň ölçegini üýtgedýän mahaly resminamanyň akymyna resminamanyň akymynda ýerleşdirmäge mümkinçilik berýänligi üçin peýdalydyr.

content setir | element | funksiýasy ''

Sypat ýok bolsa, deslapky mazmun bahasy data-bs-content.

Eger bir funksiýa berilse, thisaçylan elementiň salgylanmasy bilen atlandyrylar.

delay sany | obýekt 0

Açylýan ýeri (ms) görkezmek we gizlemek - el bilen trigger görnüşine degişli däl

San berilse, gizlemek / görkezmek üçin gijikdirme ulanylýar

Obýektiň gurluşy:delay: { "show": 500, "hide": 100 }

html boolean false Açylýan ýere HTML salyň. Falsealan bolsa innerText, DOM-a mazmun goýmak üçin emläk ulanylar. XSS hüjümleri barada alada edýän bolsaňyz, tekst ulanyň.
placement setir | funksiýasy 'right'

Açylýan ýeri nädip ýerleşdirmeli - awto | ýokarky | aşaky | çep | dogry. Görkezilende, popover-i dinamiki üýtgeder
.auto

Locationerleşişi kesgitlemek üçin bir funksiýa ulanylanda, ilkinji argumenti hökmünde çykýan DOM düwünine, ikinjisi hökmünde hereketlendiriji element DOM düwünine diýilýär. Kontekst thisaçylan meselä düzüldi.

selector setir | ýalan false Eger saýlaýjy üpjün edilse, açylan obýektler görkezilen nyşanlara berler. Iş ýüzünde, dinamiki HTML mazmunyny açýanlary goşmak üçin ulanylýar. Muny we maglumat beriji mysaly görüň .
template setir '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'

Açylýan ýer döredilende ulanjak HTML-i esaslaň.

Açylanlaryň titleiçine sanjym ediler .popover-header.

Açylanlaryň contentiçine sanjym ediler .popover-body.

.popover-arrowaçylýan ok bolar.

Daşky örtük elementi .popoversynp bolmaly.

title setir | element | funksiýasy ''

Sypat ýok bolsa, deslapky at bahasy title.

Eger bir funksiýa berilse, thisaçylan elementiň salgylanmasy bilen atlandyrylar.

trigger setir 'click' Nädip açylýandygy - basyň | aýlanmak | fokus | gollanma. Birnäçe trigger geçirip bilersiňiz; boşluk bilen bölüň. manualbaşga bir trigger bilen birleşdirip bolmaz.
fallbackPlacements massiw ['top', 'right', 'bottom', 'left'] Yzyna ýerleşdirilişleri sanawda (isleg boýunça) ýerleşdirmek arkaly kesgitläň. Has giňişleýin maglumat üçin Popperiň özüni alyp baryş resminamalaryna serediň
boundary setir | elementi 'clippingParents' Açylýan ýeriň aşýan çäk çäkleri (diňe Popper-iň öňüni alýanOverflow modifikatoryna degişlidir). Düzgüne görä, ol 'clippingParents'HTMLElement salgylanmasyny kabul edip biler (diňe JavaScript arkaly). Has giňişleýin maglumat üçin Popper-iň detectOverflow resminamalaryna serediň .
customClass setir | funksiýasy ''

Görkezilende açylýan ýere sapak goşuň. Bu synplaryň şablonda görkezilen islendik sapaklara goşmaça goşuljakdygyny unutmaň. Birnäçe synp goşmak üçin boşluklar bilen bölüň : 'class-1 class-2'.

Şeýle hem goşmaça synp atlaryny öz içine alýan bir setiri yzyna gaýtarmaly funksiýany geçirip bilersiňiz.

sanitize boolean true Arassaçylygy işletmek ýa-da öçürmek. Işledilen 'template'bolsa 'content'we 'title'opsiýalar arassalanar. JavaScript resminamalarymyzdaky arassaçylyk bölümine serediň .
allowList obýekt Bellenen baha Rugsat berlen atributlary we bellikleri öz içine alýan obýekt
sanitizeFn null | funksiýasy null Bu ýerde öz arassaçylyk funksiýaňyzy üpjün edip bilersiňiz. Arassaçylyk işini geçirmek üçin ýörite kitaphanany ulanmagy makul bilýän bolsaňyz, bu peýdaly bolup biler.
offset massiw | setir | funksiýasy [0, 8]

Maksadyna görä çykýan ýeriň ofset. Maglumat atributlarynda yzygiderli bölünen bahalar bilen bir setir geçirip bilersiňiz:data-bs-offset="10,20"

Ofset kesgitlemek üçin bir funksiýa ulanylanda, ilkinji argumenti hökmünde popper ýerleşdirilişi, salgylanma we popper düzedişleri bolan obýekt bilen atlandyrylýar. Tüweleme elementi DOM düwmesi ikinji argument hökmünde geçýär. Funksiýa iki san bilen bir massiw gaýtarmaly : .[skidding, distance]

Has giňişleýin maglumat üçin Popper-iň ofset resminamalaryna serediň .

popperConfig null | obýekt | funksiýasy null

Bootstrap-yň deslapky Popper konfigurasiýasyny üýtgetmek üçin Popper-iň konfigurasiýasyna serediň .

Popper konfigurasiýasyny döretmek üçin bir funksiýa ulanylanda, Bootstrap-yň deslapky Popper konfigurasiýasyny öz içine alýan obýekt bilen atlandyrylýar. Dymmaklygy öz konfigurasiýaňyz bilen ulanmaga we birleşdirmäge kömek edýär. Funksiýa Popper üçin konfigurasiýa obýektini yzyna gaýtarmaly.

Aýry-aýry açyjylar üçin maglumatlar atributlary

Aýry-aýry açyjylar üçin opsiýalar, ýokarda düşündirilişi ýaly maglumat atributlaryny ulanmak arkaly kesgitlenip bilner.

Bilen işlemekpopperConfig

var popover = new bootstrap.Popover(element, {
  popperConfig: function (defaultBsPopperConfig) {
    // var newPopperConfig = {...}
    // use defaultBsPopperConfig if needed...
    // return newPopperConfig
  }
})

Usullar

Asynkron usullar we geçişler

APIhli API usullary asynkron bolup, geçişe başlaýar . Geçiş başlan badyna, ýöne gutarmanka jaň edijä gaýdyp gelýärler . Mundan başga-da, geçiş komponentine çagyryş usuly hasaba alynmaz .

Has giňişleýin maglumat üçin JavaScript resminamalarymyza serediň .

görkezmek

Bir elementiň açylýan ýerini açýar. Açylýan ýer görkezilmänkä (ýagny shown.bs.popoverwaka ýüze çykmazdan ozal) jaň edýän adama gaýdyp gelýär. Bu popoveriň “gollanma” başlangyjy hasaplanýar. Ady we mazmuny ikisi nol uzynlykdaky popovers hiç haçan görkezilmeýär.

myPopover.show()

gizle

Bir elementiň açylýan ýerini gizleýär. Açylýan ýer hakykatdanam gizlenmänkä (ýagny hidden.bs.popoverwaka ýüze çykmazdan ozal) jaň edýän adama gaýdyp gelýär. Bu popoveriň “gollanma” başlangyjy hasaplanýar.

myPopover.hide()

üýtgetmek

Bir elementiň açylýan ýerini üýtgedýär. Açylýan ýer görkezilmän ýa-da gizlenmänkä (ýagny waka shown.bs.popoverýa-da hidden.bs.popoverwaka ýüze çykmazdan ozal) jaň edýän adama gaýdyp gelýär. Bu popoveriň “gollanma” başlangyjy hasaplanýar.

myPopover.toggle()

taşlaň

Bir elementiň açylýan ýerini gizleýär we ýok edýär (DOM elementindäki saklanan maglumatlary aýyrýar). Delegasiýany ulanýan poplar (opsiýany ulanyp döredilýär ) selectornesil trigger elementlerinde aýratyn ýok edilip bilinmez.

myPopover.dispose()

işletmek

Bir elementiň açylýan ýerini görkezmek ukybyny berýär. Popovers deslapky görnüşde işledilýär.

myPopover.enable()

öçürmek

Bir elementiň açylýan ýerini görkezmek ukybyny aýyrýar. Açylýan ýer diňe täzeden işledilen ýagdaýynda görkezilip bilner.

myPopover.disable()

açmak

Bir elementiň açylýan ýerini görkezmek ýa-da gizlemek ukybyny üýtgedýär.

myPopover.toggleEnabled()

täzelen

Bir elementiň açylýan ýerini täzeleýär.

myPopover.update()

GetInstance

DOM elementi bilen baglanyşykly popover mysalyny almaga mümkinçilik berýän statiki usul

var exampleTriggerEl = document.getElementById('example')
var popover = bootstrap.Popover.getInstance(exampleTriggerEl) // Returns a Bootstrap popover instance

getOrCreateInstance

DOM elementi bilen baglanyşykly popover mysalyny almaga ýa-da başlamadyk ýagdaýynda täzesini döretmäge mümkinçilik berýän statiki usul.

var exampleTriggerEl = document.getElementById('example')
var popover = bootstrap.Popover.getOrCreateInstance(exampleTriggerEl) // Returns a Bootstrap popover instance

Wakalar

Çäräniň görnüşi Düşündiriş
show.bs.popover showBu waka mysal usuly çagyrylanda derrew ýanýar .
görkezilen.bs.popover Bu waka, ulanyjynyň adyna açyk görkezilende (CSS geçişleriniň tamamlanmagyna garaşýar) atylýar.
hide.bs.popover Bu waka hidemysal usuly çagyrylanda derrew atylýar.
gizlenen.bs.popover Bu waka, ulanyjydan gizlenenden soň (CSS geçişleriniň tamamlanmagyna garaşýar) atylýar.
insert.bs.popover show.bs.popoverBu waka , DOM-a popover şablony goşulandan soň atylýar .
var myPopoverTrigger = document.getElementById('myPopover')
myPopoverTrigger.addEventListener('hidden.bs.popover', function () {
  // do something...
})