Kalo te përmbajtja kryesore Kalo te navigimi i dokumenteve
in English

Popovers

Dokumentacion dhe shembuj për shtimin e bootstrap popovers, si ato që gjenden në iOS, në çdo element në faqen tuaj.

Vështrim i përgjithshëm

Gjërat që duhet të dini kur përdorni shtojcën popover:

  • Popoverët mbështeten në bibliotekën e palës së tretë Popper për pozicionimin. Ju duhet të përfshini popper.min.js përpara bootstrap.js ose përdorni bootstrap.bundle.min.js/ bootstrap.bundle.jsqë përmban Popper në mënyrë që popover-et të funksionojnë!
  • Popoverët kërkojnë shtojcën e këshillës së veglave si një varësi.
  • Popover-et janë të zgjedhur për arsye të performancës, kështu që ju duhet t'i inicializoni ato vetë .
  • Gjatësia zero titledhe contentvlerat nuk do të tregojnë kurrë një popover.
  • Specifikoni container: 'body'për të shmangur paraqitjen e problemeve në komponentë më kompleksë (si grupet tona të hyrjes, grupet e butonave, etj.).
  • Aktivizimi i popover-eve në elementë të fshehur nuk do të funksionojë.
  • Popovers për .disabledose disabledelemente duhet të aktivizohen në një element mbështjellës.
  • Kur aktivizohen nga ankorat që mbështillen nëpër vija të shumta, popover-et do të përqendrohen midis gjerësisë së përgjithshme të ankorave. Përdorni .text-nowrapnë tuaj <a>për të shmangur këtë sjellje.
  • Popover-et duhet të fshihen përpara se elementët e tyre përkatës të hiqen nga DOM.
  • Popover-et mund të aktivizohen falë një elementi brenda një DOM hije.
Si parazgjedhje, ky komponent përdor dezinfektuesin e integruar të përmbajtjes, i cili heq çdo element HTML që nuk lejohet në mënyrë eksplicite. Shikoni seksionin e dezinfektuesit në dokumentacionin tonë JavaScript për më shumë detaje.
Efekti i animacionit të këtij komponenti varet nga prefers-reduced-motionpyetja e medias. Shikoni seksionin e lëvizjes së reduktuar të dokumentacionit tonë të aksesueshmërisë .

Vazhdoni të lexoni për të parë se si funksionojnë popoverët me disa shembuj.

Shembull: Aktivizo popover-et kudo

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

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

Shembull: Përdorimi i containeropsionit

Kur keni disa stile në një element prind që ndërhyjnë me një popover, do të dëshironi të specifikoni një porosi në containermënyrë që HTML-ja e popover-it të shfaqet brenda atij elementi.

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

Shembull

<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ër drejtime

Katër opsione janë të disponueshme: lart, djathtas, poshtë dhe majtas rreshtuar. Udhëzimet pasqyrohen kur përdorni Bootstrap në 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>

Hiqe në klikim tjetër

Përdorni focuskëmbëzën për të hequr popover-et në klikimin e ardhshëm të përdoruesit të një elementi të ndryshëm nga elementi i ndërrimit.

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 një tabindexatribut.

<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'
})

Elemente me aftësi të kufizuara

Elementet me disabledatributin nuk janë ndërveprues, që do të thotë se përdoruesit nuk mund të rrinë pezull ose t'i klikojnë për të aktivizuar një popover (ose këshillë veglash). Si një zgjidhje, do të dëshironi të aktivizoni popover-in nga një mbështjellës <div>ose <span>i bërë në mënyrë ideale të fokusuar në tastierë duke përdorur tabindex="0".

Për aktivizuesit e çaktivizuar të popover-it, mund të preferoni gjithashtu data-bs-trigger="hover focus"që popover-i të shfaqet si reagim i menjëhershëm vizual për përdoruesit tuaj pasi ata mund të mos presin të klikojnë në një element të çaktivizuar.

<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

Variablat

$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);

Përdorimi

Aktivizo popover-et përmes JavaScript:

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

Bërja e popover-ave të funksionojnë për përdoruesit e tastierës dhe teknologjisë ndihmëse

Për t'i lejuar përdoruesit e tastierës të aktivizojnë popover-et tuaja, duhet t'i shtoni ato vetëm në elementë HTML që tradicionalisht janë të fokusueshëm në tastierë dhe ndërveprues (të tilla si lidhjet ose kontrollet e formave). Megjithëse elementët arbitrarë të HTML-së (si p.sh. <span>s) mund të bëhen të fokusueshëm duke shtuar tabindex="0"atributin, kjo do të shtojë skeda potencialisht të bezdisshme dhe konfuze në elementë jo-interaktivë për përdoruesit e tastierës dhe shumica e teknologjive ndihmëse aktualisht nuk e shpallin përmbajtjen e popover-it në këtë situatë . Për më tepër, mos u mbështetni vetëm hoversi shkas për popover-et tuaja, pasi kjo do ta bëjë të pamundur aktivizimin e tyre për përdoruesit e tastierës.

Ndërsa mund të futni HTML të pasur dhe të strukturuar në popover me htmlopsionin, ne rekomandojmë fuqimisht që të shmangni shtimin e një sasie të tepërt të përmbajtjes. Mënyra se si funksionojnë aktualisht popover-et është se, pasi të shfaqen, përmbajtja e tyre lidhet me elementin e shkas me aria-describedbyatributin. Si rezultat, tërësia e përmbajtjes së popover-it do t'u njoftohet përdoruesve të teknologjisë ndihmëse si një transmetim i gjatë dhe i pandërprerë.

Për më tepër, ndërsa është e mundur të përfshini gjithashtu kontrolle ndërvepruese (të tilla si elementet e formës ose lidhjet) në popover-in tuaj (duke shtuar këto elemente në allowListatributet dhe etiketat e lejuara), kini parasysh se aktualisht popover-i nuk menaxhon rendin e fokusit të tastierës. Kur një përdorues i tastierës hap një popover, fokusi mbetet në elementin nxitës, dhe meqenëse popoveri zakonisht nuk ndjek menjëherë shkasin në strukturën e dokumentit, nuk ka asnjë garanci që lëvizja përpara/shtypjaTABdo të zhvendosë një përdorues të tastierës në vetë popover. Shkurtimisht, thjesht shtimi i kontrolleve interaktive në një popover ka të ngjarë t'i bëjë këto kontrolle të paarritshme/të papërdorshme për përdoruesit e tastierës dhe përdoruesit e teknologjive ndihmëse, ose së paku të krijojë një renditje të përgjithshme të palogjikshme të fokusit. Në këto raste, merrni parasysh përdorimin e një dialogu modal në vend.

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-bs-, si në data-bs-animation="". Sigurohuni që të ndryshoni llojin e rastit të emrit të opsionit nga camelCase në kebab-case kur kaloni opsionet përmes atributeve të të dhënave. Për shembull, në vend që të përdorni data-bs-customClass="beautifier", përdorni data-bs-custom-class="beautifier".

Vini re se për arsye sigurie opsionet sanitize, sanitizeFn, dhe allowListnuk mund të jepen duke përdorur atributet e të dhënave.
Emri Lloji E paracaktuar Përshkrim
animation logjike true Aplikoni një tranzicion të zbehjes së CSS në popover
container varg | element | i rremë false

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.

content varg | element | funksionin ''

Vlera e parazgjedhur e përmbajtjes nëse data-bs-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.

delay 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 false Fut HTML në popover. Nëse është false, innerTextprona 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.
placement varg | funksionin 'right'

Si të poziciononi popover - auto | krye | fund | majtas | drejtë.
Kur autotë specifikohet, do të riorientojë dinamikisht popover-in.

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.

selector varg | i rremë false 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 .
template varg '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'

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

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

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

.popover-arrowdo të bëhet shigjeta e popoverit.

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

title varg | element | 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.

trigger varg 'click' 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.
fallbackPlacements varg ['top', 'right', 'bottom', 'left'] Përcaktoni vendosjet e kthimit duke ofruar një listë të vendosjeve në grup (sipas preferencës). Për më shumë informacion referojuni dokumenteve të sjelljes së Popper-it
boundary varg | element 'clippingParents' Kufiri i kufizimit të tejmbushjes së popover-it (zbatohet vetëm për modifikuesin preventOverflow të Popper). Si parazgjedhje është 'clippingParents'dhe mund të pranojë një referencë HTMLElement (vetëm nëpërmjet JavaScript). Për më shumë informacion referojuni dokumenteve të detectOverflow të Popper .
customClass varg | funksionin ''

Shtoni klasa në popover kur shfaqet. Vini re se këto klasa do të shtohen përveç çdo klase të specifikuar në shabllon. Për të shtuar klasa të shumta, ndajini ato me hapësira: 'class-1 class-2'.

Ju gjithashtu mund të kaloni një funksion që duhet të kthejë një varg të vetëm që përmban emra shtesë të klasave.

sanitize logjike true Aktivizo ose çaktivizo dezinfektimin. Nëse aktivizohet 'template', 'content'dhe 'title'opsionet do të dezinfektohen. Shihni seksionin e dezinfektuesit në dokumentacionin tonë JavaScript .
allowList Objekt Vlera e paracaktuar Objekti që përmban atribute dhe etiketa të lejuara
sanitizeFn null | funksionin null 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.
offset grup | varg | funksionin [0, 8]

Kompensimi i popover-it në raport me objektivin e tij. Ju mund të kaloni një varg në atributet e të dhënave me vlera të ndara me presje si:data-bs-offset="10,20"

Kur një funksion përdoret për të përcaktuar kompensimin, ai thirret me një objekt që përmban vendosjen e popper-it, referencën dhe rektat e popper-it si argumentin e tij të parë. Nyja DOM e elementit nxitës kalohet si argumenti i dytë. Funksioni duhet të kthejë një grup me dy numra: .[skidding, distance]

Për më shumë informacion referojuni dokumenteve të kompensimit të Popper-it .

popperConfig null | objekt | funksionin null

Për të ndryshuar konfigurimin e paracaktuar të Popper të Bootstrap, shihni konfigurimin e Popper .

Kur një funksion përdoret për të krijuar konfigurimin Popper, thirret me një objekt që përmban konfigurimin e paracaktuar të Popper të Bootstrap. Ju ndihmon të përdorni dhe bashkoni parazgjedhjen me konfigurimin tuaj. Funksioni duhet të kthejë një objekt konfigurimi për Popper.

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.

Përdorimi i funksionit mepopperConfig

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

Metodat

Metodat dhe tranzicionet asinkrone

Të gjitha metodat API janë asinkrone dhe fillojnë një tranzicion . Ata kthehen te thirrësi sapo të fillojë tranzicioni, por para se të përfundojë . Përveç kësaj, një thirrje metodë në një komponent në tranzicion do të injorohet .

Shikoni dokumentacionin tonë JavaScript për më shumë informacion .

shfaqje

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ët, titulli dhe përmbajtja e të cilave janë të dyja me gjatësi zero, nuk shfaqen kurrë.

myPopover.show()

fshehin

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.

myPopover.hide()

ndërroj

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.

myPopover.toggle()

disponoj

Fsheh dhe shkatërron popover-in e një elementi (Heq të dhënat e ruajtura në elementin DOM). 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.

myPopover.dispose()

mundësojnë

I jep popover-it të një elementi aftësinë për t'u shfaqur. Popover-et janë aktivizuar si parazgjedhje.

myPopover.enable()

çaktivizoni

Heq aftësinë për shfaqjen e popover-it të një elementi. Popover-i do të mund të shfaqet vetëm nëse riaktivizohet.

myPopover.disable()

aktivizuar

Ndryshon aftësinë për shfaqjen ose fshehjen e popover-it të një elementi.

myPopover.toggleEnabled()

përditësimi

Përditëson pozicionin e popover-it të një elementi.

myPopover.update()

getInstance

Metoda statike e cila ju lejon të merrni shembullin popover të lidhur me një element DOM

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

getOrCreateInstance

Metoda statike e cila ju lejon të merrni shembullin popover të lidhur me një element DOM, ose të krijoni një të ri në rast se nuk ishte inicializuar

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

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.
var myPopoverTrigger = document.getElementById('myPopover')
myPopoverTrigger.addEventListener('hidden.bs.popover', function () {
  // do something...
})