Popovers
Zure webguneko edozein elementutan Bootstrap popover-ak gehitzeko dokumentazioa eta adibideak, iOS-en aurkitzen direnak bezala.
Ikuspegi orokorra
Popover plugina erabiltzean jakin beharrekoak:
- Popovers hirugarrenen liburutegian oinarritzen dira kokapenerako. Popper.min.js sartu behar duzu aurretik
bootstrap.js
, edobootstrap.bundle.min.js
Popper duen bat erabili. - Popover-ek popover plugina behar dute menpekotasun gisa.
- Popover-ak errendimendu arrazoiengatik aukeratzen dira, beraz, zuk zeuk hasieratu behar dituzu .
- Zero-luzera
title
etacontent
balioek ez dute inoiz popover bat erakutsiko. - Zehaztu
container: 'body'
osagai konplexuagoetan (adibidez, gure sarrera-taldeak, botoi-taldeak, etab.) arazoak errendatzea saihesteko. - Ezkutuko elementuetan popover-ak abiarazteak ez du funtzionatuko.
.disabled
Elementu edo elementuen popover-disabled
ak bilgarri-elementu batean abiarazi behar dira.- Hainbat lerrotan biltzen diren ainguretatik abiarazten denean, popover-ak ainguraren zabalera osoaren artean zentratuko dira. Erabili
.text-nowrap
zure aldean<a>
portaera hori saihesteko. - Popover-ak ezkutatu egin behar dira dagozkien elementuak DOMetik kendu aurretik.
- Popovers itzal DOM baten barruan dagoen elementu bati esker abiarazi daitezke.
prefers-reduced-motion
multimedia kontsultaren menpe dago. Ikusi
gure irisgarritasun-dokumentazioaren mugimendu murriztuaren atala .
Jarraitu irakurtzen popover-ek adibide batzuekin nola funtzionatzen duten ikusteko.
Adibideak
Gaitu popover-ak
Goian esan bezala, popover-ak hasieratu behar dituzu erabili aurretik. Orrialde bateko popover guztiak hasieratzeko modu bat bere atributuaren arabera hautatzea litzateke data-bs-toggle
, honela:
const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]')
const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl))
Zuzeneko demoa
Goiko zatiaren antzeko JavaScript erabiltzen dugu zuzeneko popover hau errendatzeko. Izenburuak bidez ezartzen dira data-bs-title
eta gorputzaren edukia bidez ezartzen da data-bs-content
.
title
edo
biak erabiltzeko. data-bs-title
Erabiltzen denean
title
, Popperrek automatikoki ordezkatuko
data-bs-title
du elementua errendatzen denean.
<button type="button" class="btn btn-lg btn-danger" data-bs-toggle="popover" data-bs-title="Popover title" data-bs-content="And here's some amazing content. It's very engaging. Right?">Click to toggle popover</button>
Lau norabide
Lau aukera daude eskuragarri: goiko, eskuineko, beheko eta ezkerreko. Jarraibideak islatzen dira Bootstrap RTL-n erabiltzean. Ezarri data-bs-placement
norabidea aldatzeko.
<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>
Pertsonalizatuacontainer
Popover-a oztopatzen duten elementu nagusi batean estilo batzuk dituzunean, pertsonalizatu bat zehaztu nahi duzu container
, popover-aren HTML elementu horren ordez ager dadin. Hau ohikoa da erantzun-tauletan, sarrera-taldeetan eta antzekoetan.
const popover = new bootstrap.Popover('.example-popover', {
container: 'body'
})
Ohitura esplizitua ezarri nahi duzun beste egoera bat elkarrizketa-koadro modalcontainer
baten barruko popover-ak dira, popover bera modalari erantsita dagoela ziurtatzeko. Hau bereziki garrantzitsua da elementu interaktiboak dituzten popover-entzat: elkarrizketa-modalek fokua harrapatuko dute, beraz, popover-a modalaren elementu seme-alaba ez bada, erabiltzaileek ezin izango dituzte elementu interaktibo hauek fokatu edo aktibatu.
const popover = new bootstrap.Popover('.example-popover', {
container: '.modal-body'
})
Popover pertsonalizatuak
v5.2.0-n gehituaPopover-en itxura pertsonaliza dezakezu CSS aldagaiak erabiliz . Klase pertsonalizatu bat ezarri dugu data-bs-custom-class="custom-popover"
gure itxura pertsonalizatua zabaltzeko eta tokiko CSS aldagai batzuk gainidazteko erabiltzeko.
.custom-popover {
--bs-popover-max-width: 200px;
--bs-popover-border-color: var(--bs-primary);
--bs-popover-header-bg: var(--bs-primary);
--bs-popover-header-color: var(--bs-white);
--bs-popover-body-padding-x: 1rem;
--bs-popover-body-padding-y: .5rem;
}
<button type="button" class="btn btn-secondary"
data-bs-toggle="popover" data-bs-placement="right"
data-bs-custom-class="custom-popover"
data-bs-title="Custom popover"
data-bs-content="This popover is themed via CSS variables.">
Custom popover
</button>
Baztertu hurrengo klikan
Erabili focus
abiarazlea popover-ak baztertzeko, erabiltzaileak etengailuaren elementua ez den beste elementu batean egin duen hurrengo klikan.
Markatu zehatza behar da hurrengo klik egitean baztertzeko
Arakatzaile eta plataforma anitzeko portaera egokia izateko, <a>
etiketa erabili behar duzu, ez etiketa<button>
, eta tabindex
atributu bat ere sartu behar duzu.
<a tabindex="0" class="btn btn-lg btn-danger" role="button" data-bs-toggle="popover" data-bs-trigger="focus" data-bs-title="Dismissible popover" data-bs-content="And here's some amazing content. It's very engaging. Right?">Dismissible popover</a>
const popover = new bootstrap.Popover('.popover-dismiss', {
trigger: 'focus'
})
Desgaitutako elementuak
Atributua duten elementuak disabled
ez dira interaktiboak, hau da, erabiltzaileek ezin dituzte pasa edo klikatu popover bat (edo tresna-informazioa) abiarazteko. Konponbide gisa, popover-a abiarazi nahi duzu bilgarri batetik <div>
edo <span>
, teklatuan foka daitekeena erabiliz tabindex="0"
.
Desgaitutako popover abiarazleetarako, baliteke data-bs-trigger="hover focus"
popover-a zure erabiltzaileei berehalako iritzi bisual gisa agertzea, baliteke desgaitutako elementu batean klik egitea espero ez dutelako.
<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>
CSS
Aldagaiak
v5.2.0-n gehituaBootstrap-en CSS aldagaien bilakaeraren ikuspegiaren barruan, popover-ek orain CSS aldagai lokalak erabiltzen dituzte .popover
denbora errealean pertsonalizatzeko. CSS aldagaien balioak Sass bidez ezartzen dira, beraz, Sass pertsonalizazioa ere onartzen da oraindik ere.
--#{$prefix}popover-zindex: #{$zindex-popover};
--#{$prefix}popover-max-width: #{$popover-max-width};
@include rfs($popover-font-size, --#{$prefix}popover-font-size);
--#{$prefix}popover-bg: #{$popover-bg};
--#{$prefix}popover-border-width: #{$popover-border-width};
--#{$prefix}popover-border-color: #{$popover-border-color};
--#{$prefix}popover-border-radius: #{$popover-border-radius};
--#{$prefix}popover-inner-border-radius: #{$popover-inner-border-radius};
--#{$prefix}popover-box-shadow: #{$popover-box-shadow};
--#{$prefix}popover-header-padding-x: #{$popover-header-padding-x};
--#{$prefix}popover-header-padding-y: #{$popover-header-padding-y};
@include rfs($popover-header-font-size, --#{$prefix}popover-header-font-size);
--#{$prefix}popover-header-color: #{$popover-header-color};
--#{$prefix}popover-header-bg: #{$popover-header-bg};
--#{$prefix}popover-body-padding-x: #{$popover-body-padding-x};
--#{$prefix}popover-body-padding-y: #{$popover-body-padding-y};
--#{$prefix}popover-body-color: #{$popover-body-color};
--#{$prefix}popover-arrow-width: #{$popover-arrow-width};
--#{$prefix}popover-arrow-height: #{$popover-arrow-height};
--#{$prefix}popover-arrow-border: var(--#{$prefix}popover-border-color);
Sass aldagaiak
$popover-font-size: $font-size-sm;
$popover-bg: $white;
$popover-max-width: 276px;
$popover-border-width: $border-width;
$popover-border-color: var(--#{$prefix}border-color-translucent);
$popover-border-radius: $border-radius-lg;
$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width);
$popover-box-shadow: $box-shadow;
$popover-header-font-size: $font-size-base;
$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;
Erabilera
Gaitu popover-ak JavaScript bidez:
const exampleEl = document.getElementById('example')
const popover = new bootstrap.Popover(exampleEl, options)
Popover-ak teklatuaren eta laguntza-teknologien erabiltzaileentzat funtzionatzea
Teklatuko erabiltzaileek zure popover-ak aktibatzeko aukera izan dezaten, ohiko teklatuan fokua eta interaktiboak diren HTML elementuetan soilik gehitu behar dituzu (adibidez, estekak edo inprimaki-kontrolak). Nahiz eta HTML elementu arbitrarioak (adibidez, <span>
s) foka daitezkeen atributua gehituz tabindex="0"
, horrek tabulazio gogaikarri eta nahasgarriak gehituko ditu teklatuaren erabiltzaileentzako elementu ez-interaktiboetan, eta gaur egun laguntza-teknologia gehienek ez dute popover-aren edukia iragartzen egoera honetan. . Gainera, ez ezazu soilik fidatu hover
zure popover-en abiarazle gisa, teklatuaren erabiltzaileek aktibatzea ezinezkoa izango baita.
Aukera honekin HTML aberatsa eta egituratua txerta dezakezun arren, html
gehiegizko edukia gehitzea saihestea gomendatzen dizugu. Une honetan popover-ek funtzionatzen duten modua da, behin bistaratu ondoren, haien edukia abiarazle-elementuari lotzen zaiola aria-describedby
atributuarekin. Ondorioz, popover-aren eduki osoa jakinaraziko zaie laguntza-teknologien erabiltzaileei etenik gabeko korronte luze gisa.
Gainera, zure popover-ean kontrol interaktiboak (adibidez, inprimaki-elementuak edo estekak) ere sar daitezkeen arren (elementu horiek allowList
baimendutako atributu eta etiketetan gehituz), kontutan izan une honetan popover-ak ez duela kudeatzen teklatuaren foku-ordena. Teklatuaren erabiltzaile batek popover bat irekitzen duenean, fokua elementu eragilean geratzen da, eta popover-ak normalean dokumentuaren egituran abiarazlea berehala jarraitzen ez duenez, ez dago bermatzen aurrera/sakatzea.TABteklatuaren erabiltzaile bat popover-era eramango du. Laburbilduz, popover batean kontrol interaktiboak gehitzeak litekeena da kontrol horiek eskuraezinak edo erabilezinak bihurtzea teklatuaren erabiltzaileentzat eta laguntza-teknologien erabiltzaileentzat, edo, gutxienez, fokatze-ordena orokor ilogiko bat egitea. Kasu hauetan, kontuan hartu elkarrizketa modal bat erabiltzea ordez.
Aukerak
Aukerak datu-atributuen edo JavaScript bidez pasa daitezkeenez, aukera-izen bat gehi diezaiokezu data-bs-
, honela data-bs-animation="{value}"
. Ziurtatu aukera-izenaren kasu-mota " camelCase "-tik " kebab-case "-ra aldatzen duzula aukerak datu-atributuen bidez pasatzen dituzunean. Adibidez, erabili data-bs-custom-class="beautifier"
ordez data-bs-customClass="beautifier"
.
Bootstrap 5.2.0-tik aurrera, osagai guztiek erreserbatutako datu-atributu esperimentaldata-bs-config
bat onartzen dute , osagaien konfigurazio sinplea JSON kate gisa gorde dezakeena. Elementu batek data-bs-config='{"delay":0, "title":123}'
eta data-bs-title="456"
atributuak dituenean, azken title
balioa izango da 456
eta bereizitako datu-atributuek gailuan emandako balioak gainidatziko dituzte data-bs-config
. Gainera, lehendik dauden datu-atributuek JSON balioak gorde ditzakete data-bs-delay='{"show":0,"hide":150}'
.
sanitize
,
sanitizeFn
, eta
allowList
aukerak ezin direla eman datu-atributuak erabiliz.
Izena | Mota | Lehenetsia | Deskribapena |
---|---|---|---|
allowList |
objektua | Balio lehenetsia | Baimendutako atributuak eta etiketak dituen objektua. |
animation |
boolearra | true |
Aplikatu CSS desagertzeko trantsizioa popover-ean. |
boundary |
katea, elementua | 'clippingParents' |
Popover-aren gainezka-murriztapenaren muga (Popper-en preventOverflow modifikatzaileari soilik aplikatzen zaio). Lehenespenez, 'clippingParents' HTMLElement erreferentzia bat da eta onartu dezake (JavaScript bidez soilik). Informazio gehiagorako, ikusi Popper-en detectOverflow docs . |
container |
kate, elementu, faltsu | false |
Popover-a elementu zehatz bati eransten dio. Adibidea container: 'body' :. Aukera hau bereziki erabilgarria da, popover-a dokumentuaren fluxuan kokatzeko aukera ematen baitu elementu eragilearen ondoan, eta horrek saihestuko du popover-a abiaraztearen elementutik urruntzea leihoaren tamaina aldatzean. |
content |
katea, elementua, funtzioa | '' |
Edukiaren balio lehenetsia data-bs-content atributua ez badago. this Funtzio bat ematen bada, popover-a erantsita dagoen elementuari erreferentzia ezarrita deituko zaio . |
customClass |
katea, funtzioa | '' |
Gehitu klaseak popover-era erakusten denean. Kontuan izan klase hauek txantiloian zehaztutako klaseez gain gehituko direla. Hainbat klase gehitzeko, bereiz itzazu zuriuneekin: 'class-1 class-2' . Klase-izen gehigarriak dituen kate bakarra itzuli behar duen funtzio bat ere pasa dezakezu. |
delay |
zenbakia, objektua | 0 |
Atzeratu popover-a erakustea eta ezkutatzea (ms) — ez dagokio eskuzko abiarazte motari. Zenbaki bat ematen bada, atzerapena aplikatuko da ezkutatzeko/erakusteko. Objektuaren egitura hau da: delay: { "show": 500, "hide": 100 } . |
fallbackPlacements |
katea, array | ['top', 'right', 'bottom', 'left'] |
Definitu ordezko kokapenak array-ko kokapen-zerrenda bat emanez (hobespenen arabera). Informazio gehiagorako, jo Popperren portaera dokumentuetara . |
html |
boolearra | false |
Baimendu HTML popover-ean. Egia bada, popover-eko HTML etiketak popover-en title errendatuko dira. Faltsua bada, innerText propietatea erabiliko da edukia DOMean txertatzeko. Erabili testua XSS erasoekin kezkatuta bazaude. |
offset |
zenbakia, katea, funtzioa | [0, 0] |
Popover-aren desplazamendua bere xedearekiko. Datu-atributuetan kate bat pasa dezakezu komaz bereizitako balioekin: data-bs-offset="10,20" . Desplazamendua zehazteko funtzio bat erabiltzen denean, lehen argumentu gisa popper-aren kokapena, erreferentzia eta popper zuzenak dituen objektu batekin deitzen da. DOM nodo abiarazteko elementua bigarren argumentu gisa pasatzen da. Funtzioak bi zenbaki dituen array bat itzuli behar du: skidding , distance . Informazio gehiago lortzeko, ikusi Popper-en offset docs . |
placement |
katea, funtzioa | 'top' |
Popover-a nola kokatu: automatikoa, goian, behean, ezkerrean, eskuinean. auto Zehazten denean , popover-a dinamikoki berbideratuko du. Funtzio bat kokapena zehazteko erabiltzen denean, popover DOM nodoa lehen argumentu gisa deitzen da eta abiarazte elementua DOM nodoa bigarren gisa. this Testuingurua popover instantzian ezartzen da . |
popperConfig |
nulu, objektu, funtzio | null |
Bootstrap-en Popper konfigurazio lehenetsia aldatzeko, ikusi Popper-en konfigurazioa . Popper konfigurazioa sortzeko funtzio bat erabiltzen denean, Bootstrap-en Popper konfigurazio lehenetsia duen objektu batekin deitzen da. Lehenetsia zure konfigurazioarekin erabiltzen eta batzen laguntzen dizu. Funtzioak konfigurazio-objektu bat itzuli behar du Popperrentzat. |
sanitize |
boolearra | true |
Gaitu edo desgaitu desinfekzioa. Aktibatzen bada 'template' , 'content' eta 'title' aukerak garbituko dira. |
sanitizeFn |
nulua, funtzioa | null |
Hemen zure higienizazio funtzioa horni dezakezu. Hau erabilgarria izan daiteke garbiketa egiteko liburutegi dedikatu bat erabili nahi baduzu. |
selector |
katea, faltsua | false |
Hautatzaile bat ematen bada, popover objektuak zehaztutako helburuetara delegatuko dira. Praktikan, dinamikoki gehitutako DOM elementuei popovers aplikatzeko erabiltzen da ( jQuery.on euskarria). Ikusi ale hau eta informazio-adibide bat . |
template |
katea | '<div class="popover" role="popover"><div class="popover-arrow"></div><div class="popover-inner"></div></div>' |
Oinarrizko HTML popover-a sortzerakoan erabiltzeko. Popover- title ak injektatuko dira .popover-inner . .popover-arrow popover-en gezia bihurtuko da. Kanpoko bilgarri-elementuak .popover klasea eta role="popover" . |
title |
katea, elementua, funtzioa | '' |
Izenburuaren balio lehenetsia title atributua ez badago. this Funtzio bat ematen bada, popover-a erantsita dagoen elementuari erreferentzia ezarrita deituko zaio . |
trigger |
katea | 'hover focus' |
Nola abiarazten den popover-a: egin klik, pasa ezazu, fokua, eskuz. Hainbat abiarazle pasa ditzakezu; bereiz itzazu tarte batekin. popover-a , eta metodoen 'manual' bidez programatikoki abiaraziko dela adierazten du ; balio hori ezin da beste edozein abiarazlerekin konbinatu. bere kabuz teklatuaren bidez abiarazi ezin diren popover-ak eragingo ditu, eta teklatuaren erabiltzaileei informazio bera helarazteko metodo alternatiboak badaude soilik erabili behar dira..popover('show') .popover('hide') .popover('toggle') 'hover' |
Popover indibidualentzako datu-atributuak
Popover indibidualetarako aukerak bestela datu-atributuak erabiliz zehaztu daitezke, goian azaldu bezala.
Funtzioa erabilizpopperConfig
const popover = new bootstrap.Popover(element, {
popperConfig(defaultBsPopperConfig) {
// const newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
Metodoak
Metodo asinkronoak eta trantsizioak
API metodo guztiak asinkronoak dira eta trantsizio bat hasten dute . Trantsizioa hasi bezain laster baina amaitu baino lehen itzultzen dira deitzailearengana . Gainera, trantsizio-osagai baten metodo-dei bati ez ikusi egingo zaio .
Ikus gure JavaScript dokumentazioa informazio gehiago lortzeko .
Metodoa | Deskribapena |
---|---|
disable |
Elementu baten popover-a erakusteko gaitasuna kentzen du. Popover-a berriro gaituta badago soilik erakutsi ahal izango da. |
dispose |
Elementu baten popover-a ezkutatu eta suntsitzen du (DOM elementuan gordetako datuak kentzen ditu). Delegazioa erabiltzen duten popover-ak (aukera erabiliz sortzen direnak ) selector ezin dira banan-banan suntsitu ondorengo abiarazle-elementuetan. |
enable |
Elementu baten popover-ari erakusteko gaitasuna ematen dio. Popover-ak lehenespenez gaituta daude. |
getInstance |
Metodo estatikoa DOM elementu bati lotutako popover instantzia lortzeko aukera ematen duena. |
getOrCreateInstance |
Metodo estatikoa DOM elementu batekin erlazionatutako popover instantzia lortzeko edo berri bat sortzeko aukera ematen du, hasieratu ez bazen. |
hide |
Elementu baten popover-a ezkutatzen du. Deitzen duenari itzultzen zaio popover-a benetan ezkutatu aurretik (hau da, hidden.bs.popover gertaera gertatu baino lehen). Hau popover-aren "eskuz" abiaraztetzat hartzen da. |
setContent |
Hasieratu ondoren popover-aren edukia aldatzeko modua ematen du. |
show |
Elementu baten popover-a agerian uzten du. Deitzen duenari itzultzen zaio popover-a benetan erakutsi aurretik (hau da, shown.bs.popover gertaera gertatu baino lehen). Hau popover-aren "eskuz" abiaraztetzat hartzen da. Izenburua eta edukia zero-luzera duten popover-ak ez dira inoiz bistaratzen. |
toggle |
Elementu baten popover-a aktibatzen du. Deitzen duenari itzultzen zaio popover-a benetan erakutsi edo ezkutatu aurretik (hau da, shown.bs.popover edo hidden.bs.popover gertaera gertatu baino lehen). Hau popover-aren "eskuz" abiaraztetzat hartzen da. |
toggleEnabled |
Elementu baten popover-a erakusteko edo ezkutatzeko gaitasuna aldatzen du. |
update |
Elementu baten popover-aren posizioa eguneratzen du. |
// getOrCreateInstance example
const popover = bootstrap.Popover.getOrCreateInstance('#example') // Returns a Bootstrap popover instance
// setContent example
myPopover.setContent({
'.popover-header': 'another title',
'.popover-body': 'another content'
})
setContent
Metodoak argumentu bat onartzen du
,
object
non propietate-gako bakoitza baliozko
string
hautatzailea den popover txantiloiaren barruan, eta erlazionatutako propietate-balio bakoitza
string
|
element
|
function
|
null
Gertaerak
Gertaera | Deskribapena |
---|---|
hide.bs.popover |
Gertaera hau berehala abiarazten da hide instantzia-metodoa deitzen denean. |
hidden.bs.popover |
Gertaera hau abiarazten da popover-a erabiltzaileari ezkutatzen amaitzen denean (CSS trantsizioak amaitu arte itxarongo da). |
inserted.bs.popover |
Gertaera hau gertaeraren ondoren show.bs.popover abiarazten da popover txantiloia DOM-era gehitu denean. |
show.bs.popover |
Gertaera hau berehala abiarazten da show instantzia-metodoa deitzen denean. |
shown.bs.popover |
Gertaera hau abiarazten da popover-a erabiltzailearentzat ikusgai jartzen denean (CSS trantsizioak amaitu arte itxarongo da). |
const myPopoverTrigger = document.getElementById('myPopover')
myPopoverTrigger.addEventListener('hidden.bs.popover', () => {
// do something...
})