Popoverji
Dokumentacija in primeri za dodajanje pojavnih oken Bootstrap, kot so tisti v iOS-u, kateremu koli elementu na vašem spletnem mestu.
Pregled
Stvari, ki jih morate vedeti pri uporabi vtičnika Popover:
- Popovers se za pozicioniranje zanašajo na knjižnico tretjih oseb Popper . Morate vključiti popper.min.js pred bootstrap.js ali uporabiti
bootstrap.bundle.min.js
/bootstrap.bundle.js
, ki vsebuje Popper, da bodo popoveri delovali! - Popovers zahtevajo vtičnik orodnih namigov kot odvisnost.
- Če gradite naš JavaScript iz izvorne kode, zahteva
util.js
. - Popovers so opt-in zaradi učinkovitosti, zato jih morate inicializirati sami .
- Ničelna dolžina
title
incontent
vrednosti ne bodo nikoli prikazale pojavnega pojava. - Določite
container: 'body'
, da se izognete težavam z upodabljanjem v kompleksnejših komponentah (kot so naše vnosne skupine, skupine gumbov itd.). - Sprožitev popoverjev na skritih elementih ne bo delovala.
- Popover za
.disabled
alidisabled
elemente je treba sprožiti na ovojnem elementu. - Ko se sprožijo iz sider, ki se prepletajo čez več črt, bodo popoverji centrirani med celotno širino sider. Uporabite
.text-nowrap
na svojem<a>
s, da se izognete temu vedenju. - Popoverja je treba skriti, preden so njihovi ustrezni elementi odstranjeni iz DOM.
- Popoverje je mogoče sprožiti zahvaljujoč elementu znotraj senčnega DOM.
prefers-reduced-motion
medijske poizvedbe. Oglejte si razdelek o
zmanjšanem gibanju v naši dokumentaciji o dostopnosti .
Nadaljujte z branjem in si oglejte, kako delujejo popoverji z nekaj primeri.
Primer: Povsod omogočite pojavna okna
Eden od načinov inicializacije vseh pojavnih oken na strani bi bil, da jih izberete po njihovem data-toggle
atributu:
$(function () {
$('[data-toggle="popover"]').popover()
})
Primer: Uporaba container
možnosti
Ko imate na nadrejenem elementu nekaj slogov, ki motijo pojavni element, boste želeli določiti po meri container
, tako da se bo HTML pojavnega elementa namesto tega pojavil znotraj tega elementa.
$(function () {
$('.example-popover').popover({
container: 'body'
})
})
Primer
<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>
Štiri smeri
Na voljo so štiri možnosti: zgoraj, desno, spodaj in levo poravnano.
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="top" data-content="Top popover">
Popover on top
</button>
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="right" data-content="Right popover">
Popover on right
</button>
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Bottom popover">
Popover on bottom
</button>
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="left" data-content="Left popover">
Popover on left
</button>
Opusti ob naslednjem kliku
Uporabite focus
sprožilec, da opustite pojavna okna ob naslednjem kliku uporabnika drugega elementa kot preklopni element.
Za opustitev ob naslednjem kliku je potrebna posebna oznaka
Za pravilno delovanje med brskalniki in platformami morate uporabiti <a>
oznako, ne oznake <button>
, vključiti pa morate tudi tabindex
atribut.
<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>
$('.popover-dismiss').popover({
trigger: 'focus'
})
Onemogočeni elementi
Elementi z disabled
atributom niso interaktivni, kar pomeni, da jih uporabniki ne morejo premakniti ali klikniti, da bi sprožili pojavni prikaz (ali opis orodja). Kot rešitev boste želeli sprožiti popover iz ovoja <div>
ali <span>
preglasiti pointer-events
onemogočen element.
Pri onemogočenih sprožilcih pojavnega pojavnega elementa boste morda želeli tudi data-trigger="hover"
, da se pojavni pojav prikaže kot takojšnja vizualna povratna informacija vašim uporabnikom, saj morda ne pričakujejo, da bodo kliknili onemogočen element.
<span class="d-inline-block" data-toggle="popover" data-content="Disabled popover">
<button class="btn btn-primary" style="pointer-events: none;" type="button" disabled>Disabled button</button>
</span>
Uporaba
Omogoči pojavna okna prek JavaScripta:
$('#example').popover(options)
GPU pospešek
Popoverji so včasih videti zamegljeni v napravah s sistemom Windows 10 zaradi pospeševanja GPE in spremenjenega sistemskega DPI. Rešitev za to v različici 4 je, da po potrebi onemogočite pospeševanje GPU na vaših pojavnih oknih.
Predlagana rešitev:
Popper.Defaults.modifiers.computeStyle.gpuAcceleration = !(window.devicePixelRatio < 1.5 && /Win/.test(navigator.platform))
Omogočanje, da bodo popoverji delovali za uporabnike tipkovnic in podporne tehnologije
Če želite uporabnikom tipkovnice omogočiti aktiviranje vaših pojavnih elementov, jih dodajte samo elementom HTML, ki so tradicionalno osredotočeni na tipkovnico in so interaktivni (kot so povezave ali kontrolniki obrazcev). Čeprav lahko poljubne elemente HTML (kot <span>
je s) omogočite fokusiranje z dodajanjem tabindex="0"
atributa, bo to dodalo potencialno nadležne in zmedene tabulatorske postanke na neinteraktivnih elementih za uporabnike tipkovnice, večina podpornih tehnologij pa trenutno ne objavi vsebine pojavnega okna v tej situaciji . Poleg tega se ne zanašajte samo na hover
sprožilec za svoje pojavne elemente, saj jih tako uporabniki tipkovnice ne bodo mogli sprožiti.
Čeprav lahko s to html
možnostjo v pojavna okna vstavite bogat, strukturiran HTML, toplo priporočamo, da se izogibate dodajanju pretirane količine vsebine. Popoverji trenutno delujejo tako, da je njihova vsebina, ko so enkrat prikazana, povezana s sprožilnim elementom z aria-describedby
atributom. Posledično bo celotna vsebina popoverja objavljena uporabnikom podporne tehnologije kot en dolg, neprekinjen tok.
Poleg tega, čeprav je mogoče vključiti tudi interaktivne kontrolnike (kot so elementi obrazca ali povezave) v vaš pojavni element (z dodajanjem teh elementov v whiteList
ali dovoljene atribute in oznake), se zavedajte, da trenutno pojavni okvir ne upravlja vrstnega reda fokusa tipkovnice. Ko uporabnik tipkovnice odpre pojavni element, fokus ostane na sprožilnem elementu in ker pojavni element običajno ne sledi takoj sprožilcu v strukturi dokumenta, ni nobenega zagotovila, da bo premikanje naprej/pritiskanjeTABpremakne uporabnika tipkovnice v samo pojavno okno. Skratka, preprosto dodajanje interaktivnih kontrolnikov v pojavni element bo verjetno naredilo te kontrolnike nedosegljive/neuporabne za uporabnike tipkovnic in uporabnike podpornih tehnologij ali pa bo vsaj povzročilo nelogičen splošni vrstni red fokusa. V teh primerih razmislite o uporabi modalnega pogovornega okna.
Opcije
Možnosti je mogoče posredovati prek podatkovnih atributov ali JavaScripta. Za atribute podatkov pripnite ime možnosti v data-
, kot v data-animation=""
.
sanitize
,
sanitizeFn
in
whiteList
ni mogoče zagotoviti z uporabo podatkovnih atributov.
Ime | Vrsta | Privzeto | Opis |
---|---|---|---|
animacija | logično | prav | Uporabite prehod CSS zbledenja na pojavni element |
posoda | niz | element | lažno | lažno | Popover doda določenemu elementu. Primer: |
vsebino | niz | element | funkcijo | '' | Privzeta vrednost vsebine, če Če je podana funkcija, bo klicana s |
zamuda | številka | predmet | 0 | Zakasnitev prikaza in skrivanja pojavnega pojava (ms) - ne velja za tip ročnega proženja Če je navedena številka, se zakasnitev uporabi za skrij/prikaži Struktura objekta je: |
html | logično | lažno | V pojavno okno vstavite HTML. Če je nastavljeno na false, text bo za vstavljanje vsebine v DOM uporabljena metoda jQuery. Če vas skrbijo napadi XSS, uporabite besedilo. |
umestitev | niz | funkcijo | 'prav' | Kako postaviti popover – samodejno | vrh | dno | levo | prav. Ko se funkcija uporabi za določitev umestitve, se pokliče s pojavnim vozliščem DOM kot prvim argumentom in prožilnim elementom DOM vozliščem kot drugim. Kontekst |
selektor | niz | lažno | lažno | Če je na voljo izbirnik, bodo pojavni objekti dodeljeni navedenim ciljem. V praksi se to uporablja za omogočanje dodajanja pojavnih oken dinamični vsebini HTML. Oglejte si to in informativen primer . |
predlogo | vrvica | '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' |
Osnovni HTML za uporabo pri ustvarjanju pojavnega okna. Popoverji Popoverji
Zunanji ovojni element mora imeti |
naslov | niz | element | funkcijo | '' | Privzeta vrednost naslova, če Če je podana funkcija, bo klicana s |
sprožilec | vrvica | 'klik' | Kako se sproži popover - kliknite | lebdi | fokus | priročnik. Lahko prenesete več sprožilcev; ločite jih s presledkom. manual ni mogoče kombinirati z nobenim drugim sprožilcem. |
odmik | številka | vrvica | 0 | Odmik pojavnega elementa glede na cilj. Za več informacij glejte Popperjevo dokumentacijo o offsetu . |
rezervna umestitev | niz | niz | 'flip' | Dovolite, da določite, kateri položaj bo Popper uporabil pri nadomestni uporabi. Za več informacij glejte Popperjeve dokumente o vedenju |
customClass | niz | funkcijo | '' | Dodajte razrede pojavnemu oknu, ko se prikaže. Upoštevajte, da bodo ti razredi dodani poleg vseh razredov, navedenih v predlogi. Če želite dodati več razredov, jih ločite s presledki: Posredujete lahko tudi funkcijo, ki naj vrne en sam niz, ki vsebuje dodatna imena razredov. |
meja | niz | element | 'scrollParent' | Meja omejitve prelivanja pojavnega elementa. Sprejema vrednosti 'viewport' , 'window' , 'scrollParent' ali sklic HTMLElement (samo JavaScript). Za več informacij se obrnite na Popperjevo preprečiOverflow dokumentacijo . |
razkužiti | logično | prav | Omogočite ali onemogočite čiščenje. Če je aktivirano 'template' , bodo možnosti 'content' in 'title' možnosti razčiščene. Oglejte si razdelek o razkužilu v naši dokumentaciji za JavaScript . |
beli seznam | predmet | Privzeta vrednost | Objekt, ki vsebuje dovoljene atribute in oznake |
sanitizeFn | nič | funkcijo | nič | Tukaj lahko zagotovite lastno funkcijo razkuževanja. To je lahko uporabno, če za izvajanje sanacije raje uporabljate namensko knjižnico. |
popperConfig | nič | predmet | nič | Če želite spremeniti privzeto konfiguracijo Popperja Bootstrap, glejte Popperjevo konfiguracijo |
Atributi podatkov za posamezne popoverje
Možnosti za posamezna pojavna okna se lahko določijo tudi z uporabo podatkovnih atributov, kot je razloženo zgoraj.
Metode
Asinhrone metode in prehodi
Vse metode API so asinhrone in začnejo prehod . K klicatelju se vrnejo takoj, ko se prehod začne, vendar preden se konča . Poleg tega bo prezrt klic metode prehodne komponente .
Za več informacij si oglejte našo dokumentacijo JavaScript .
$().popover(options)
Inicializira pojavna okna za zbirko elementov.
.popover('show')
Razkrije popover elementa. Vrne se k klicatelju, preden je pojavno okno dejansko prikazano (tj. preden shown.bs.popover
pride do dogodka). To velja za »ročno« sprožitev popoverja. Popoverji, katerih naslov in vsebina sta ničelne dolžine, niso nikoli prikazani.
$('#element').popover('show')
.popover('hide')
Skrije pojavni element elementa. Vrne se k klicatelju, preden je bil popover dejansko skrit (tj. preden hidden.bs.popover
pride do dogodka). To velja za »ročno« sprožitev popoverja.
$('#element').popover('hide')
.popover('toggle')
Preklopi pojavni element elementa. Vrne se klicatelju, preden je pojavni element dejansko prikazan ali skrit (tj. preden pride do dogodka shown.bs.popover
ali ). hidden.bs.popover
To velja za »ročno« sprožitev popoverja.
$('#element').popover('toggle')
.popover('dispose')
Skrije in uniči popover elementa. Popoverjev, ki uporabljajo delegiranje (ki so ustvarjeni z možnostjo selector
) , ni mogoče posamično uničiti na podrejenih prožilnih elementih.
$('#element').popover('dispose')
.popover('enable')
Omogoča prikaz pojavnega elementa. Popoverji so privzeto omogočeni.
$('#element').popover('enable')
.popover('disable')
Odstrani možnost prikaza pojavnega elementa. Popover bo lahko prikazan samo, če je ponovno omogočen.
$('#element').popover('disable')
.popover('toggleEnabled')
Preklopi možnost, da je pojavni element elementa prikazan ali skrit.
$('#element').popover('toggleEnabled')
.popover('update')
Posodobi položaj pojavnega elementa.
$('#element').popover('update')
Dogodki
Vrsta dogodka | Opis |
---|---|
show.bs.popover | Ta dogodek se sproži takoj, ko show se pokliče metoda primerka. |
prikazano.bs.popover | Ta dogodek se sproži, ko postane pojavni element viden uporabniku (počakal bo, da se zaključijo prehodi CSS). |
hide.bs.popover | Ta dogodek se sproži takoj, ko hide je bila poklicana metoda primerka. |
hidden.bs.popover | Ta dogodek se sproži, ko se pojavni pomik neha skriti pred uporabnikom (počakal bo, da se zaključijo prehodi CSS). |
vstavljeno.bs.popover | Ta dogodek se sproži po show.bs.popover dogodku, ko je bila v DOM dodana popover predloga. |
$('#myPopover').on('hidden.bs.popover', function () {
// do something...
})