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.js
që 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.
- Nëse po ndërtoni JavaScript-in tonë nga burimi, ai kërkon
util.js
. - Popover-et janë të zgjedhur për arsye të performancës, kështu që ju duhet t'i inicializoni ato vetë .
- Gjatësia zero
title
dhecontent
vlerat 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
.disabled
osedisabled
elemente 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-nowrap
në 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.
prefers-reduced-motion
pyetja 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-toggle
atributit të tyre:
$(function () {
$('[data-toggle="popover"]').popover()
})
Shembull: Përdorimi i container
opsionit
Kur keni disa stile në një element prind që ndërhyjnë me një popover, do të dëshironi të specifikoni një porosi në container
mënyrë që HTML-ja e popover-it të shfaqet brenda atij elementi.
$(function () {
$('.example-popover').popover({
container: 'body'
})
})
Shembull
<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>
Katër drejtime
Katër opsione janë të disponueshme: lart, djathtas, poshtë dhe majtas rreshtuar.
<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>
Hiqe në klikim tjetër
Përdorni focus
kë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ë 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'
})
Elemente me aftësi të kufizuara
Elementet me disabled
atributin 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>
dhe të anashkaloni pointer-events
elementin e çaktivizuar.
Për aktivizuesit e çaktivizuar të popover-it, mund të preferoni gjithashtu data-trigger="hover"
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" data-toggle="popover" data-content="Disabled popover">
<button class="btn btn-primary" style="pointer-events: none;" type="button" disabled>Disabled button</button>
</span>
Përdorimi
Aktivizo popover-et përmes JavaScript:
$('#example').popover(options)
Përshpejtimi i GPU-së
Popoverët ndonjëherë duken të paqarta në pajisjet Windows 10 për shkak të përshpejtimit të GPU-së dhe një DPI të modifikuar të sistemit. Zgjidhja për këtë në v4 është të çaktivizoni përshpejtimin e GPU-së sipas nevojës në popover-ët tuaj.
Rregullimi i sugjeruar:
Popper.Defaults.modifiers.computeStyle.gpuAcceleration = !(window.devicePixelRatio < 1.5 && /Win/.test(navigator.platform))
Bërja e popover-eve 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ët jointeraktivë 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 hover
si 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 html
opsionin, 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-describedby
atributin. 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ërkohë që është e mundur të përfshini gjithashtu kontrolle ndërvepruese (të tilla si elementët e formës ose lidhjet) në popover-in tuaj (duke shtuar këto elemente në whiteList
atributet dhe etiketat ose të 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ë fokusit të palogjikshëm. 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-
, si në data-animation=""
.
sanitize
,
sanitizeFn
dhe
whiteList
nuk mund të ofrohen duke përdorur atributet e të dhënave.
Emri | Lloji | E paracaktuar | Përshkrim |
---|---|---|---|
animacion | logjike | e vërtetë | Aplikoni një tranzicion të zbehjes së CSS në popover |
enë | varg | element | i rremë | i rremë | Shton popover-in në një element specifik. Shembull: |
përmbajtjen | varg | element | funksionin | '' | Vlera e parazgjedhur e përmbajtjes nëse Nëse jepet një funksion, ai do të thirret me grupin e tij |
vonesë | 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ë: |
html | logjike | i rremë | Fut HTML në popover. Nëse është false, text metoda e jQuery 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. |
vendosja | varg | funksionin | 'e drejt' | Si të poziciononi popover - auto | krye | fund | majtas | drejtë. 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 |
përzgjedhës | varg | i rremë | i rremë | 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 shtimin e popover-ave të përmbajtjes dinamike HTML. Shihni këtë dhe një shembull informues . |
shabllon | varg | '<div class="popover" role="tooltip"><div class="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 Popover-i
Elementi më i jashtëm i mbështjellësit duhet të ketë |
titullin | varg | element | funksionin | '' | Vlera e parazgjedhur e titullit nëse Nëse jepet një funksion, ai do të thirret me grupin e tij |
shkas | varg | 'kliko' | Si shkaktohet popover - klikoni | rri pezull | fokus | manual. Ju mund të kaloni disa shkaktarë; ndani ato me një hapësirë. manual nuk mund të kombinohet me asnjë shkas tjetër. |
kompensuar | numri | varg | 0 | Kompensimi i popover-it në raport me objektivin e tij. Për më shumë informacion referojuni dokumenteve të kompensimit të Popper-it . |
kthimi i vendosjes | varg | varg | 'rrokullisje' | Lejoni të specifikoni se cilin pozicion do të përdorë Popper në rikthim. Për më shumë informacion referojuni dokumenteve të sjelljes së Popper-it |
Klasa me porosi | 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: Ju gjithashtu mund të kaloni një funksion që duhet të kthejë një varg të vetëm që përmban emra shtesë të klasave. |
kufiri | varg | element | 'scrollParent' | Kufiri i kufizimit të tejmbushjes së popover-it. Pranon vlerat e 'viewport' , 'window' , 'scrollParent' , ose një referencë HTMLElement (vetëm JavaScript). Për më shumë informacion, referojuni dokumenteve të preventOverflow të Popper . |
dezinfektoj | logjike | e vërtetë | Aktivizoni ose çaktivizoni dezinfektimin. Nëse aktivizohet 'template' , 'content' dhe 'title' opsionet do të dezinfektohen. Shihni seksionin e dezinfektuesit në dokumentacionin tonë JavaScript . |
listën e bardhë | Objekt | Vlera e paracaktuar | Objekti që përmban atribute dhe etiketa të lejuara |
dezinfektojFn | null | funksionin | i pavlefshëm | 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. |
popperConfig | null | Objekt | i pavlefshëm | Për të ndryshuar konfigurimin e paracaktuar të Popper të Bootstrap, shihni konfigurimin e 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.
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 .
$().popover(options)
Inicializon popover-et për një koleksion elementesh.
.popover('show')
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.popover
ngjarja 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ë.
$('#element').popover('show')
.popover('hide')
Fsheh popover-in 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.popover
ndodhë ngjarja). Kjo konsiderohet si një nxitje "manuale" e popoverit.
$('#element').popover('hide')
.popover('toggle')
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.popover
ose ). hidden.bs.popover
Kjo konsiderohet si një nxitje "manuale" e popoverit.
$('#element').popover('toggle')
.popover('dispose')
Fsheh dhe shkatërron popoverin e një elementi. 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.
$('#element').popover('dispose')
.popover('enable')
I jep popover-it të një elementi aftësinë për t'u shfaqur. Popover-et janë aktivizuar si parazgjedhje.
$('#element').popover('enable')
.popover('disable')
Heq aftësinë për shfaqjen e popover-it të një elementi. Popover-i do të mund të shfaqet vetëm nëse riaktivizohet.
$('#element').popover('disable')
.popover('toggleEnabled')
Ndryshon aftësinë për shfaqjen ose fshehjen e popover-it të një elementi.
$('#element').popover('toggleEnabled')
.popover('update')
Përditëson pozicionin e popover-it të një elementi.
$('#element').popover('update')
Ngjarjet
Lloji i ngjarjes | Përshkrim |
---|---|
shfaq.bs.popover | Kjo ngjarje ndizet menjëherë kur show thirret 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 hide thirret 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.popover ngjarjes kur shablloni popover është shtuar në DOM. |
$('#myPopover').on('hidden.bs.popover', function () {
// do something...
})