Popovers
Dokumentācija un piemēri Bootstrap uznirstošo logu, piemēram, operētājsistēmā iOS, pievienošanai jebkuram vietnes elementam.
Pārskats
Lietas, kas jāzina, izmantojot uznirstošo spraudni:
- Popovers pozicionēšanai izmanto trešās puses bibliotēku Popper . Lai uznirstošie elementi darbotos, pirms bootstrap.js jāiekļauj popper.min.js vai jāizmanto
bootstrap.bundle.min.js
/bootstrap.bundle.js
kas satur Popper! - Uznirstošajiem ekrāniem kā atkarība ir nepieciešams rīka padoma spraudnis .
- Ja veidojat mūsu JavaScript no avota, tam ir nepieciešams
util.js
. - Uznirstošie elementi ir izvēlēti veiktspējas iemeslu dēļ, tāpēc jums tie ir jāinicializē pašam .
- Nulles garums
title
uncontent
vērtības nekad neparādīs uznirstošo logu. - Norādiet
container: 'body'
, lai izvairītos no renderēšanas problēmām sarežģītākos komponentos (piemēram, mūsu ievades grupās, pogu grupās utt.). - Uznirstošo logu aktivizēšana slēptajos elementos nedarbosies.
- Uznirstošie elementi
.disabled
vaidisabled
elementiem ir jāaktivizē iesaiņojuma elementā. - Ja to aktivizē enkuri, kas apvij vairākas līnijas, uznirstošie elementi tiks centrēti starp enkuru kopējo platumu. Izmantojiet
.text-nowrap
,<a>
lai izvairītos no šādas uzvedības. - Uznirstošie elementi ir jāslēpj, pirms to atbilstošie elementi ir noņemti no DOM.
- Popovers var tikt aktivizēts, pateicoties elementam, kas atrodas ēnu DOM.
prefers-reduced-motion
multivides vaicājuma. Skatiet
mūsu pieejamības dokumentācijas sadaļu samazinātas kustības .
Turpiniet lasīt, lai redzētu, kā darbojas uznirstošie elementi, izmantojot dažus piemērus.
Piemērs: iespējot uznirstošos logus visur
Viens veids, kā inicializēt visus uznirstošos logus lapā, būtu atlasīt tos pēc to data-toggle
atribūta:
$(function () {
$('[data-toggle="popover"]').popover()
})
Piemērs: container
opcijas izmantošana
Ja vecā elementā ir daži stili, kas traucē uznirstošo logu, jūs vēlaties norādīt pielāgotu container
, lai uznirstošā elementa HTML tiktu rādīts šajā elementā.
$(function () {
$('.example-popover').popover({
container: 'body'
})
})
Piemērs
<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>
Četri virzieni
Ir pieejamas četras opcijas: līdzinājums augšā, pa labi, apakšā un pa kreisi.
<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>
Noraidīt ar nākamo klikšķi
Izmantojiet focus
aktivizētāju, lai noraidītu uznirstošos logus, kad lietotājs nākamreiz noklikšķina uz cita elementa, nevis uz pārslēgšanas elementa.
Konkrēts marķējums ir nepieciešams, lai atteiktu nākamo klikšķi
Lai nodrošinātu pareizu darbību starp pārlūkprogrammām un platformām, ir jāizmanto <a>
tags, nevis tags, kā <button>
arī jāiekļauj tabindex
atribūts.
<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'
})
Atspējotie elementi
Elementi ar disabled
atribūtu nav interaktīvi, tas nozīmē, ka lietotāji nevar virzīt kursoru vai noklikšķināt uz tiem, lai aktivizētu uznirstošo logu (vai rīka padomu). Kā risinājumu varat aktivizēt uznirstošo pavērsienu no iesaiņojuma <div>
vai <span>
un ignorēt pointer-events
atspējotā elementa.
Atspējotiem uznirstošiem aktivizētājiem varat arī izvēlēties data-trigger="hover"
, lai uznirstošais logs lietotājiem tiktu rādīts kā tūlītēja vizuāla atgriezeniskā saite, jo viņi, iespējams, negaidīs, ka noklikšķinās uz atspējota elementa.
<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>
Lietošana
Iespējot uznirstošos logus, izmantojot JavaScript:
$('#example').popover(options)
GPU paātrinājums
Windows 10 ierīcēs uznirstošie elementi dažkārt šķiet izplūduši GPU paātrinājuma un modificētas sistēmas DPI dēļ. Risinājums 4. versijā ir atspējot GPU paātrinājumu pēc nepieciešamības uznirstošajos ekrānos.
Ieteiktais labojums:
Popper.Defaults.modifiers.computeStyle.gpuAcceleration = !(window.devicePixelRatio < 1.5 && /Win/.test(navigator.platform))
Uznirstošo logu izmantošana tastatūras un palīgtehnoloģiju lietotājiem
Lai ļautu tastatūras lietotājiem aktivizēt jūsu uznirstošos logus, jums tie jāpievieno tikai tiem HTML elementiem, kas tradicionāli ir orientēti uz tastatūru un ir interaktīvi (piemēram, saites vai veidlapas vadīklas). Lai gan patvaļīgus HTML elementus (piemēram, <span>
s) var padarīt fokusējamus, pievienojot tabindex="0"
atribūtu, tastatūras lietotājiem tiks pievienotas potenciāli kaitinošas un mulsinošas tabulēšanas pieturas neinteraktīvajiem elementiem, un lielākā daļa palīgtehnoloģiju pašlaik nepaziņo uznirstošā ekrāna saturu šajā situācijā. . Turklāt nepaļaujieties tikai uz hover
uznirstošo logu aktivizētāju, jo tas padarīs tos neiespējamu tastatūras lietotājiem.
Lai gan varat ievietot bagātīgu, strukturētu HTML uznirstošajos logos, izmantojot šo html
opciju, mēs ļoti iesakām izvairīties no pārmērīga satura daudzuma pievienošanas. Pašlaik uznirstošie uznirstošie elementi darbojas tādā veidā, ka pēc parādīšanas to saturs ir saistīts ar aktivizētāja elementu ar aria-describedby
atribūtu. Rezultātā viss popover saturs tiks paziņots palīgtehnoloģiju lietotājiem kā viena gara, nepārtraukta straume.
Turklāt, lai gan uznirstošajā logā ir iespējams iekļaut arī interaktīvas vadīklas (piemēram, veidlapas elementus vai saites) (pievienojot šos elementus whiteList
vai atļautajiem atribūtiem un tagiem), ņemiet vērā, ka pašlaik uznirstošais logs nepārvalda tastatūras fokusa secību. Kad tastatūras lietotājs atver uznirstošo logu, fokuss paliek uz palaišanas elementu, un, tā kā uznirstošais logs parasti neseko uzreiz pēc palaišanas dokumenta struktūrā, nav garantijas, ka, virzoties uz priekšu/nospiežot.TABpārvietos tastatūras lietotāju pašā uznirstošajā logā. Īsāk sakot, vienkārši pievienojot interaktīvas vadīklas uznirstošajam logam, tastatūras lietotājiem un palīgtehnoloģiju lietotājiem šīs vadīklas, visticamāk, kļūs nepieejamas/nelietojamas vai vismaz radīs neloģisku kopējo fokusa secību. Šādos gadījumos apsveriet iespēju izmantot modālu dialoglodziņu.
Iespējas
Opcijas var nodot, izmantojot datu atribūtus vai JavaScript. Datu atribūtiem pievienojiet opcijas nosaukumu data-
, tāpat kā data-animation=""
.
sanitize
,
sanitizeFn
un
whiteList
nevar nodrošināt, izmantojot datu atribūtus.
Vārds | Tips | Noklusējums | Apraksts |
---|---|---|---|
animācija | Būla | taisnība | Uznirstošajam logam izmantojiet CSS izbalēšanas pāreju |
konteiners | stīga | elements | viltus | viltus | Pievieno uznirstošo logu konkrētam elementam. Piemērs: |
saturu | stīga | elements | funkciju | '' | Noklusējuma satura vērtība, ja Ja funkcija ir dota, tā tiks izsaukta ar |
kavēšanās | numurs | objektu | 0 | Uznirstošā loga rādīšanas un slēpšanas aizkave (ms) — neattiecas uz manuālo palaišanas veidu Ja tiek norādīts numurs, aizkave tiek piemērota gan slēpšanai/rādīšanai Objekta struktūra ir šāda: |
html | Būla | viltus | Ievietojiet HTML uznirstošajā logā. text Ja tas ir nepatiess, satura ievietošanai DOM tiks izmantota jQuery metode. Izmantojiet tekstu, ja uztraucaties par XSS uzbrukumiem. |
izvietojumu | stīga | funkciju | 'pa labi' | Kā novietot uznirstošo logu - auto | uz augšu | apakšā | pa kreisi | pa labi. Ja funkcija tiek izmantota, lai noteiktu izvietojumu, tā tiek izsaukta ar uznirstošo DOM mezglu kā pirmo argumentu un izraisošo elementu DOM mezglu kā otro. Konteksts |
atlasītājs | stīga | viltus | viltus | Ja ir nodrošināts atlasītājs, uznirstošie objekti tiks deleģēti norādītajiem mērķiem. Praksē to izmanto, lai dinamiskam HTML saturam iespējotu uznirstošo logu pievienošanu. Skatiet šo un informatīvo piemēru . |
veidne | stīga | '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' |
Pamata HTML, kas jāizmanto, veidojot uznirstošo logu. Popover's Popover's
Vistālākajam iesaiņojuma elementam jābūt |
virsraksts | stīga | elements | funkciju | '' | Noklusējuma nosaukuma vērtība, ja Ja funkcija ir dota, tā tiks izsaukta ar |
sprūda | stīga | 'klikšķis' | Kā tiek aktivizēts popover — noklikšķiniet uz | lidināties | fokuss | rokasgrāmata. Jūs varat nodot vairākus trigerus; atdaliet tos ar atstarpi. manual nevar kombinēt ar kādu citu aktivizētāju. |
kompensēt | numurs | stīga | 0 | Popover nobīde attiecībā pret tā mērķi. Papildinformāciju skatiet Poppera nobīdes dokumentos . |
atkāpšanāsIzvietojums | stīga | masīvs | "apgriezt" | Ļaujiet norādīt, kuru pozīciju Popper izmantos atkāpšanās gadījumā. Papildinformāciju skatiet Popera uzvedības dokumentos |
customClass | stīga | funkciju | '' | Pievienojiet klases uznirstošajam logam, kad tas tiek parādīts. Ņemiet vērā, ka šīs klases tiks pievienotas papildus visām veidnē norādītajām klasēm. Lai pievienotu vairākas klases, atdaliet tās ar atstarpēm: Varat arī nodot funkciju, kurai jāatgriež viena virkne, kas satur papildu klašu nosaukumus. |
robeža | stīga | elements | 'scrollParent' | Uznirstošā loga pārpildes ierobežojuma robeža. Pieņem vērtības 'viewport' , 'window' , 'scrollParent' vai HTMLElement atsauci (tikai JavaScript). Lai iegūtu papildinformāciju, skatiet Popper's preventOverflow dokumentus . |
dezinficēt | Būla | taisnība | Iespējojiet vai atspējojiet dezinfekciju. Ja tas ir aktivizēts 'template' , opcijas tiks sanitizētas. Skatiet mūsu JavaScript dokumentācijas sadaļu par dezinfekcijas līdzekļiem .'content' 'title' |
baltais saraksts | objektu | Noklusējuma vērtība | Objekts, kurā ir atļauti atribūti un tagi |
sanitizeFn | null | funkciju | null | Šeit jūs varat nodrošināt savu dezinfekcijas funkciju. Tas var būt noderīgi, ja vēlaties dezinficēšanai izmantot īpašu bibliotēku. |
popperConfig | null | objektu | null | Lai mainītu Bootstrap noklusējuma Popper konfigurāciju, skatiet Popper konfigurāciju |
Datu atribūti atsevišķiem uznirstošajiem logiem
Atsevišķu uznirstošo logu opcijas var norādīt, izmantojot datu atribūtus, kā paskaidrots iepriekš.
Metodes
Asinhronās metodes un pārejas
Visas API metodes ir asinhronas un sāk pāreju . Viņi atgriežas pie zvanītāja, tiklīdz ir sākta pāreja, bet pirms tās beigām . Turklāt pārejas komponenta metodes izsaukums tiks ignorēts .
$().popover(options)
Inicializē elementu kolekcijas uznirstošos logus.
.popover('show')
Atklāj elementa popover. Atgriežas pie zvanītāja, pirms faktiski ir parādīts uznirstošais logs (ti, pirms shown.bs.popover
notikuma). Tas tiek uzskatīts par "manuālu" uznirstošā ekrāna aktivizēšanu. Uznirstošie elementi, kuru nosaukumam un saturam ir nulles garums, nekad netiek rādīti.
$('#element').popover('show')
.popover('hide')
Paslēpj elementa uznirstošo logu. Atgriežas pie zvanītāja, pirms uznirstošais logs ir faktiski paslēpts (ti, pirms hidden.bs.popover
notikuma). Tas tiek uzskatīts par "manuālu" uznirstošā ekrāna aktivizēšanu.
$('#element').popover('hide')
.popover('toggle')
Pārslēdz elementa uznirstošo logu. Atgriežas pie zvanītāja, pirms uznirstošais logs ir faktiski parādīts vai paslēpts (ti, pirms shown.bs.popover
vai hidden.bs.popover
notikuma). Tas tiek uzskatīts par "manuālu" uznirstošā ekrāna aktivizēšanu.
$('#element').popover('toggle')
.popover('dispose')
Paslēpj un iznīcina elementa uznirstošo logu. Uznirstošos logus, kuros tiek izmantota deleģēšana (kas tiek izveidoti, izmantojot opciju selector
) , nevar atsevišķi iznīcināt pēcnācēju trigera elementiem.
$('#element').popover('dispose')
.popover('enable')
Sniedz iespēju parādīt elementa uznirstošo logu. Uznirstošie elementi ir iespējoti pēc noklusējuma.
$('#element').popover('enable')
.popover('disable')
Noņem iespēju rādīt elementa uznirstošo logu. Uznirstošo logu varēs parādīt tikai tad, ja tas būs atkārtoti iespējots.
$('#element').popover('disable')
.popover('toggleEnabled')
Pārslēdz iespēju rādīt vai paslēpt elementa uznirstošo logu.
$('#element').popover('toggleEnabled')
.popover('update')
Atjaunina elementa uznirstošā loga pozīciju.
$('#element').popover('update')
Pasākumi
Pasākuma veids | Apraksts |
---|---|
show.bs.popover | Šis notikums tiek aktivizēts nekavējoties, kad show tiek izsaukta instances metode. |
parādīts.bs.popover | Šis notikums tiek aktivizēts, kad uznirstošais logs ir padarīts redzams lietotājam (pagaidīs, līdz tiks pabeigtas CSS pārejas). |
hide.bs.popover | Šis notikums tiek aktivizēts nekavējoties, kad hide ir izsaukta instances metode. |
paslēpts.bs.popover | Šis notikums tiek aktivizēts, kad uznirstošais logs ir paslēpts no lietotāja (gaidīs, kamēr CSS pārejas tiks pabeigtas). |
ievietots.bs.popover | Šis notikums tiek aktivizēts pēc show.bs.popover notikuma, kad uznirstošā veidne ir pievienota DOM. |
$('#myPopover').on('hidden.bs.popover', function () {
// do something...
})