Popovers
Dokimantasyon ak egzanp pou ajoute Bootstrap popovers, tankou sa yo jwenn nan iOS, nan nenpòt eleman sou sit ou a.
Apèsi sou lekòl la
Bagay ou dwe konnen lè w ap itilize plugin popover la:
- Popovers konte sou 3yèm pati bibliyotèk Popper pou pwezante. Ou dwe mete popper.min.js anvan bootstrap.js oswa itilize
bootstrap.bundle.min.js
/bootstrap.bundle.js
ki gen Popper pou popovers yo travay! - Popovers mande pou plugin a tooltip kòm yon depandans.
- Popovers yo patisipe pou rezon pèfòmans, kidonk ou dwe inisyalize yo tèt ou .
- Zewo-longè
title
akcontent
valè pa janm ap montre yon popover. - Espesifye
container: 'body'
pou evite rann pwoblèm nan eleman ki pi konplèks (tankou gwoup opinyon nou yo, gwoup bouton, elatriye). - Deklanche popovers sou eleman kache pa pral travay.
- Popovers pou
.disabled
oswadisabled
eleman yo dwe deklanche sou yon eleman wrapper. - Lè yo deklanche soti nan lank ki vlope sou plizyè liy, popovers yo pral santre ant lajè an jeneral lank yo. Sèvi ak
.text-nowrap
sou ou<a>
pou evite konpòtman sa a. - Popovers yo dwe kache anvan eleman korespondan yo te retire nan DOM la.
- Popovers ka deklanche gras a yon eleman andedan yon DOM lonbraj.
prefers-reduced-motion
rechèch medya yo. Gade
seksyon mouvman redui nan dokiman aksè nou an .
Kontinye lekti pou wè ki jan popovers travay ak kèk egzanp.
Egzanp: Pèmèt popovers toupatou
Youn nan fason yo inisyalize tout popovers sou yon paj ta dwe chwazi yo pa data-bs-toggle
atribi yo:
var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
return new bootstrap.Popover(popoverTriggerEl)
})
Egzanp: Sèvi ak container
opsyon an
Lè ou gen kèk estil sou yon eleman paran ki entèfere ak yon popover, ou pral vle presize yon koutim container
pou HTML popover a parèt nan eleman sa a pito.
var popover = new bootstrap.Popover(document.querySelector('.example-popover'), {
container: 'body'
})
Egzanp
<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>
Kat direksyon
Gen kat opsyon ki disponib: anwo, adwat, anba, ak aliye agoch. Enstriksyon yo reflete lè w ap itilize Bootstrap nan RTL.
<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>
Rejte sou pwochen klike sou
Sèvi ak focus
deklanche a pou ranvwaye popovers sou pwochen klik itilizatè a sou yon eleman diferan pase eleman baskil la.
Mak espesifik obligatwa pou ranvwaye-sou-pwochen-klike
Pou bon konpòtman kwa-navigatè ak kwa-platfòm, ou dwe itilize <a>
tag la, pa tag la <button>
, epi ou dwe gen ladan tou yon tabindex
atribi.
<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'
})
Eleman andikape
Eleman ki gen disabled
atribi a pa entèaktif, sa vle di itilizatè yo pa ka hover oswa klike sou yo pou deklanche yon popover (oswa konsèy zouti). Kòm yon solisyon, ou pral vle deklanche popover a soti nan yon anbalaj <div>
oswa <span>
, depreferans te fè klavye-focusable lè l sèvi avèk tabindex="0"
.
Pou deklannche popover ki andikape, ou ka prefere tou data-bs-trigger="hover focus"
pou popover a parèt kòm fidbak vizyèl imedya pou itilizatè ou yo paske yo pa ka espere klike sou yon eleman ki andikape.
<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
Varyab
$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);
Itilizasyon
Pèmèt popovers via JavaScript:
var exampleEl = document.getElementById('example')
var popover = new bootstrap.Popover(exampleEl, options)
Fè popovers travay pou itilizatè klavye ak teknoloji asistans
Pou pèmèt itilizatè klavye yo aktive popovers ou yo, ou ta dwe ajoute yo sèlman nan eleman HTML ki tradisyonèlman konsantre sou klavye ak entèaktif (tankou lyen oswa kontwòl fòm). Malgre ke eleman HTML abitrè (tankou <span>
s) yo ka fè konsantre lè yo ajoute tabindex="0"
atribi a, sa pral ajoute tab stops potansyèlman anmèdan ak konfizyon sou eleman ki pa entèaktif pou itilizatè klavye, ak pifò teknoloji asistans kounye a pa anonse kontni popover a nan sitiyasyon sa a. . Anplis de sa, pa konte sèlman sou hover
kòm deklanche pou popovers ou yo, paske sa ap fè yo enposib deklanche pou itilizatè klavye yo.
Pandan ke ou ka mete HTML rich, estriktire nan popovers ak html
opsyon a, nou rekòmande pou evite ajoute yon kantite twòp nan kontni. Fason popovers yo travay kounye a se ke, yon fwa yo parèt, kontni yo mare nan eleman deklanche ak aria-describedby
atribi a. Kòm yon rezilta, tout kontni popover a pral anonse bay itilizatè teknoloji asistans kòm yon sèl kouran ki dire lontan, san enteripsyon.
Anplis de sa, byenke li posib pou enkli tou kontwòl entèaktif (tankou eleman fòm oswa lyen) nan popover ou a (pa ajoute eleman sa yo allowList
nan atribi ak tags yo pèmèt), ou dwe konnen ke kounye a popover a pa jere lòd konsantre klavye. Lè yon itilizatè klavye ouvri yon popover, konsantre rete sou eleman deklanche a, epi kòm popover a anjeneral pa imedyatman swiv deklanche nan estrikti dokiman an, pa gen okenn garanti ke vanse / peze.TABpral deplase yon itilizatè klavye nan popover nan tèt li. Nan ti bout tan, tou senpleman ajoute kontwòl entèaktif nan yon popover gen chans rive nan fè kontwòl sa yo inaccessible / inutilisables pou itilizatè klavye ak itilizatè teknoloji asistans, oswa omwen fè pou yon lòd konsantre jeneral ki pa lojik. Nan ka sa yo, konsidere itilize yon dyalòg modal pito.
Opsyon
Opsyon yo ka pase atravè atribi done oswa JavaScript. Pou atribi done, ajoute non opsyon a nan data-bs-
, tankou nan data-bs-animation=""
. Asire w ke w chanje kalite ka non opsyon an soti nan camelCase a kebab-case lè w ap pase opsyon yo atravè atribi done yo. Pa egzanp, olye pou yo itilize data-bs-customClass="beautifier"
, sèvi ak data-bs-custom-class="beautifier"
.
sanitize
,
sanitizeFn
, ak
atribi done yo.allowList
Non | Kalite | Default | Deskripsyon |
---|---|---|---|
animation |
booleyen | true |
Aplike yon tranzisyon CSS fennen nan popover la |
container |
fisèl | eleman | fo | false |
Mete popover a nan yon eleman espesifik. Egzanp: |
content |
fisèl | eleman | fonksyon | '' |
Valè kontni par défaut si Si yo bay yon fonksyon, yo pral rele li ak |
delay |
nimewo | objè | 0 |
Reta montre ak kache popover a (ms) - pa aplike nan kalite deklanche manyèl Si yo bay yon nimewo, reta aplike pou tou de kache/montre Estrikti objè se: |
html |
booleyen | false |
Mete HTML nan popover la. Si se fo, innerText yo pral itilize pwopriyete pou mete kontni nan DOM la. Sèvi ak tèks si w enkyete w pou atak XSS. |
placement |
fisèl | fonksyon | 'right' |
Ki jan yo pozisyon popover a - oto | tèt | anba | kite | dwat. Lè yo itilize yon fonksyon pou detèmine plasman an, yo rele li ak popover DOM kòm premye agiman li epi deklanche eleman DOM kòm dezyèm li. Kontèks |
selector |
fisèl | fo | false |
Si yo bay yon seleksyon, objè popover yo pral delege nan sib yo espesifye. Nan pratik, sa a yo itilize pou pèmèt kontni HTML dinamik pou ajoute popovers. Gade sa a ak yon egzanp enfòmatif . |
template |
fisèl | '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' |
Baz HTML pou itilize lè kreye popover a. Popover a Popover a
Eleman wrapper ki pi eksteryè a ta dwe gen |
title |
fisèl | eleman | fonksyon | '' |
Valè tit default si Si yo bay yon fonksyon, yo pral rele li ak |
trigger |
fisèl | 'click' |
Ki jan popover deklanche - klike sou | hover | konsantre | manyèl. Ou ka pase plizyè deklanche; separe yo ak yon espas. manual pa ka konbine avèk okenn lòt deklanche. |
fallbackPlacements |
etalaj | ['top', 'right', 'bottom', 'left'] |
Defini plasman sere lè w bay yon lis plasman nan etalaj (nan lòd preferans). Pou plis enfòmasyon, al gade nan dokiman konpòtman Popper |
boundary |
fisèl | eleman | 'clippingParents' |
Limit kontrent debòde nan popover a (aplike sèlman nan modifye preventOverflow Popper a). Pa default li a 'clippingParents' epi li ka aksepte yon referans HTMLElement (via JavaScript sèlman). Pou plis enfòmasyon, gade nan docs detectOverflow Popper a . |
customClass |
fisèl | fonksyon | '' |
Ajoute klas nan popover a lè yo montre li. Remake byen ke yo pral ajoute klas sa yo anplis de nenpòt klas ki espesifye nan modèl la. Pou ajoute plizyè klas, separe yo ak espas: Ou kapab tou pase yon fonksyon ki ta dwe retounen yon sèl fisèl ki gen non klas adisyonèl. |
sanitize |
booleyen | true |
Aktive oswa enfim sanitizasyon an. Si yo aktive 'template' , 'content' ak 'title' opsyon yo pral dezenfekte. Gade seksyon dezenfektan nan dokiman JavaScript nou an . |
allowList |
objè | Valè default | Objè ki gen atribi ak tags pèmèt |
sanitizeFn |
nil | fonksyon | null |
Isit la ou ka bay pwòp fonksyon dezenfekte ou. Sa a ka itil si ou prefere sèvi ak yon bibliyotèk devwe pou fè dezenfekte. |
offset |
etalaj | fisèl | fonksyon | [0, 8] |
Konsantrasyon popover a parapò ak sib li yo. Ou ka pase yon fisèl nan atribi done ak valè separe vigil tankou: Lè yo itilize yon fonksyon pou detèmine konpanse a, yo rele l ak yon objè ki genyen plasman popper a, referans a, ak popper rects kòm premye agiman li. Se eleman deklanche ne DOM la pase kòm dezyèm agiman an. Fonksyon an dwe retounen yon etalaj ki gen de nimewo: . Pou plis enfòmasyon, al gade nan Docs Offset Popper la . |
popperConfig |
nil | objè | fonksyon | null |
Pou chanje konfigirasyon Popper default Bootstrap la, gade konfigirasyon Popper la . Lè yo itilize yon fonksyon pou kreye konfigirasyon Popper la, yo rele l ak yon objè ki gen konfigirasyon Popper default Bootstrap la. Li ede ou itilize ak rantre default la ak pwòp konfigirasyon ou. Fonksyon an dwe retounen yon objè konfigirasyon pou Popper. |
Done atribi pou popovers endividyèl yo
Opsyon pou popovers endividyèl yo ka altènativman espesifye atravè itilizasyon atribi done, jan yo eksplike sa pi wo a.
Sèvi ak fonksyon akpopperConfig
var popover = new bootstrap.Popover(element, {
popperConfig: function (defaultBsPopperConfig) {
// var newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
Metòd
Metòd asynchrone ak tranzisyon
Tout metòd API yo asenkron epi yo kòmanse yon tranzisyon . Yo retounen kote moun k ap rele a le pli vit ke tranzisyon an kòmanse men anvan li fini . Anplis de sa, yo pral inyore yon apèl metòd sou yon eleman tranzisyon .
montre
Revele popover yon eleman. Retounen bay moun kap rele a anvan popover a aktyèlman te montre (sa vle di anvan shown.bs.popover
evènman an rive). Sa a konsidere kòm yon "manyèl" deklanche popover la. Popovers ki gen tit ak kontni tou de zewo-longè pa janm parèt.
myPopover.show()
kache
Kache popover yon eleman. Retounen bay moun kap rele a anvan popover a aktyèlman kache (sa vle di anvan hidden.bs.popover
evènman an rive). Sa a konsidere kòm yon "manyèl" deklanche popover la.
myPopover.hide()
baskile
Aktivite popover yon eleman. Retounen bay moun kap rele a anvan popover a aktyèlman te montre oswa kache (sa vle di anvan evènman shown.bs.popover
an hidden.bs.popover
rive). Sa a konsidere kòm yon "manyèl" deklanche popover la.
myPopover.toggle()
jete
Kache epi detwi popover yon eleman (Retire done ki estoke sou eleman DOM). Popovers ki itilize delegasyon (ki kreye lè l sèvi avèk opsyon selector
an ) pa ka detwi endividyèlman sou eleman deklanche desandan yo.
myPopover.dispose()
pèmèt
Bay popover yon eleman kapasite pou yo montre. Popovers yo aktive pa default.
myPopover.enable()
enfim
Retire abilite pou popover yon eleman pou montre. Popover a pral sèlman kapab montre si li re-aktive.
myPopover.disable()
toggleEnabled
Aktivite kapasite pou popover yon eleman yo dwe montre oswa kache.
myPopover.toggleEnabled()
aktyalizasyon
Mete ajou pozisyon popover yon eleman.
myPopover.update()
getInstance
Metòd estatik ki pèmèt ou jwenn egzanp popover ki asosye ak yon eleman DOM
var exampleTriggerEl = document.getElementById('example')
var popover = bootstrap.Popover.getInstance(exampleTriggerEl) // Returns a Bootstrap popover instance
getOrCreateInstance
Metòd estatik ki pèmèt ou jwenn egzanp popover ki asosye ak yon eleman DOM, oswa kreye yon nouvo nan ka li pa te inisyalize.
var exampleTriggerEl = document.getElementById('example')
var popover = bootstrap.Popover.getOrCreateInstance(exampleTriggerEl) // Returns a Bootstrap popover instance
Evènman
Kalite evènman | Deskripsyon |
---|---|
montre.bs.popover | Evènman sa a dife imedyatman lè yo show rele metòd egzanp lan. |
montre.bs.popover | Evènman sa a revoke lè popover a vin vizib pou itilizatè a (ap tann pou tranzisyon CSS fini). |
kache.bs.popover | Evènman sa a te tire imedyatman lè yo hide te rele metòd egzanp lan. |
hidden.bs.popover | Evènman sa a revoke lè popover a fini kache pou itilizatè a (ap tann pou tranzisyon CSS fini). |
inserted.bs.popover | Evènman sa a revoke apre show.bs.popover evènman an lè yo te ajoute modèl popover nan DOM la. |
var myPopoverTrigger = document.getElementById('myPopover')
myPopoverTrigger.addEventListener('hidden.bs.popover', function () {
// do something...
})