Popovers
Dokumentasie en voorbeelde vir die byvoeging van Bootstrap-opspringers, soos dié wat in iOS gevind word, by enige element op jou werf.
Oorsig
Dinge om te weet wanneer jy die popover-inprop gebruik:
- Popovers maak staat op die derdeparty-biblioteek Popper vir posisionering. Jy moet popper.min.js voor bootstrap.js insluit of
bootstrap.bundle.min.js
/bootstrap.bundle.js
wat Popper bevat gebruik sodat popovers kan werk! - Popovers vereis die tooltip-inprop as 'n afhanklikheid.
- As jy ons JavaScript vanaf die bron bou, vereis
util.js
dit . - Popovers is intekening vir prestasieredes, so jy moet dit self inisialiseer .
- Zero-lengte
title
encontent
waardes sal nooit 'n popover wys nie. - Spesifiseer
container: 'body'
om te verhoed dat probleme in meer komplekse komponente weergegee word (soos ons invoergroepe, knoppiegroepe, ens.). - Om popovers op versteekte elemente te aktiveer sal nie werk nie.
- Popovers vir
.disabled
ofdisabled
elemente moet op 'n omhulelement geaktiveer word. - Wanneer dit geaktiveer word vanaf ankers wat oor veelvuldige lyne draai, sal popovers gesentreer word tussen die ankers se algehele breedte. Gebruik
.text-nowrap
op jou<a>
s om hierdie gedrag te vermy. - Popovers moet versteek word voordat hul ooreenstemmende elemente uit die DOM verwyder is.
- Popovers kan geaktiveer word danksy 'n element binne 'n skadu-DOM.
prefers-reduced-motion
medianavraag. Sien die
verminderde beweging-afdeling van ons toeganklikheidsdokumentasie .
Hou aan om te lees om te sien hoe popovers werk met 'n paar voorbeelde.
Voorbeeld: Aktiveer popovers oral
Een manier om alle opspringers op 'n bladsy te inisialiseer, is om hulle volgens hul data-toggle
kenmerk te kies:
$(function () {
$('[data-toggle="popover"]').popover()
})
Voorbeeld: Gebruik die container
opsie
Wanneer jy 'n paar style op 'n ouerelement het wat inmeng met 'n opspringer, sal jy 'n pasgemaakte wil spesifiseer container
sodat die opspringer se HTML eerder binne daardie element verskyn.
$(function () {
$('.example-popover').popover({
container: 'body'
})
})
Voorbeeld
<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>
Vier rigtings
Vier opsies is beskikbaar: bo-, regs-, onder- en linksbelyn.
<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>
Maak toe met die volgende klik
Gebruik die focus
sneller om opspringers op die gebruiker se volgende klik van 'n ander element as die wissel-element af te maak.
Spesifieke opmaak word vereis vir wegmaak-met-volgende-klik
Vir behoorlike kruisblaaier- en kruisplatformgedrag, moet jy die <a>
merker gebruik, nie die <button>
merker nie, en jy moet ook 'n tabindex
kenmerk insluit.
<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'
})
Gedeaktiveerde elemente
Elemente met die disabled
kenmerk is nie interaktief nie, wat beteken dat gebruikers nie kan beweeg of daarop klik om 'n popover (of nutswenk) te aktiveer nie. As 'n oplossing, sal jy die popover van 'n omhulsel wil aktiveer <div>
of die op die gedeaktiveerde element <span>
ignoreer .pointer-events
Vir gedeaktiveerde popover-snellers, kan jy ook verkies data-trigger="hover"
dat die popover as onmiddellike visuele terugvoer aan jou gebruikers verskyn, aangesien hulle dalk nie verwag om op 'n gedeaktiveerde element te klik nie.
<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>
Gebruik
Aktiveer popovers via JavaScript:
$('#example').popover(options)
GPU versnelling
Popovers lyk soms vaag op Windows 10-toestelle as gevolg van GPU-versnelling en 'n gewysigde stelsel DPI. Die oplossing hiervoor in v4 is om GPU-versnelling te deaktiveer soos nodig op jou popovers.
Voorgestelde regstelling:
Popper.Defaults.modifiers.computeStyle.gpuAcceleration = !(window.devicePixelRatio < 1.5 && /Win/.test(navigator.platform))
Om popovers te laat werk vir sleutelbord- en hulptegnologiegebruikers
Om sleutelbordgebruikers toe te laat om jou popovers te aktiveer, moet jy dit net by HTML-elemente voeg wat tradisioneel sleutelbordfokusbaar en interaktief is (soos skakels of vormkontroles). Alhoewel arbitrêre HTML-elemente (soos <span>
s) fokusbaar gemaak kan word deur die tabindex="0"
kenmerk by te voeg, sal dit potensieel irriterende en verwarrende tabstops op nie-interaktiewe elemente vir sleutelbordgebruikers byvoeg, en die meeste ondersteunende tegnologieë kondig tans nie die popover se inhoud aan in hierdie situasie . Moet ook nie net staatmaak hover
as die sneller vir jou popovers nie, want dit sal dit onmoontlik maak om dit vir sleutelbordgebruikers te aktiveer.
Alhoewel jy ryk, gestruktureerde HTML in popovers kan invoeg met die html
opsie, beveel ons sterk aan dat jy vermy om 'n oormatige hoeveelheid inhoud by te voeg. Die manier waarop popovers tans werk, is dat, sodra dit vertoon is, hul inhoud gekoppel is aan die sneller-element met die aria-describedby
kenmerk. Gevolglik sal die hele inhoud van die popover aan ondersteunende tegnologiegebruikers aangekondig word as een lang, ononderbroke stroom.
Daarbenewens, alhoewel dit moontlik is om ook interaktiewe kontroles (soos vormelemente of skakels) in jou popover in te sluit (deur hierdie elemente by die whiteList
of toegelate kenmerke en etikette te voeg), moet jy bewus wees dat tans die popover nie sleutelbordfokusvolgorde bestuur nie. Wanneer 'n sleutelbordgebruiker 'n popover oopmaak, bly fokus op die snellerelement, en aangesien die popover gewoonlik nie onmiddellik die sneller in die dokument se struktuur volg nie, is daar geen waarborg dat vorentoe beweeg/druk nie.TABsal 'n sleutelbordgebruiker na die popover self skuif. Kortom, die toevoeging van interaktiewe kontroles by 'n popover sal waarskynlik hierdie kontroles onbereikbaar/onbruikbaar maak vir sleutelbordgebruikers en gebruikers van ondersteunende tegnologieë, of ten minste 'n onlogiese algehele fokusvolgorde maak. In hierdie gevalle, oorweeg dit om eerder 'n modale dialoog te gebruik.
Opsies
Opsies kan deur data-kenmerke of JavaScript deurgegee word. Vir data-kenmerke, voeg die opsienaam by data-
, soos in data-animation=""
.
sanitize
,
sanitizeFn
en
whiteList
opsies nie verskaf kan word deur data-kenmerke te gebruik nie.
Naam | Tik | Verstek | Beskrywing |
---|---|---|---|
animasie | boolean | waar | Pas 'n CSS-vervaag-oorgang toe op die popover |
houer | tou | element | onwaar | onwaar | Voeg die popover by 'n spesifieke element. Voorbeeld: |
inhoud | tou | element | funksie | '' | Verstek inhoudwaarde as As 'n funksie gegee word, sal dit genoem word met sy |
vertraging | nommer | voorwerp | 0 | Vertraag wys en verberg die popover (ms) - is nie van toepassing op handmatige snellertipe nie As 'n nommer verskaf word, word vertraging toegepas op beide versteek/wys Voorwerpstruktuur is: |
html | boolean | onwaar | Voeg HTML in die popover. Indien onwaar, sal jQuery se text metode gebruik word om inhoud in die DOM in te voeg. Gebruik teks as jy bekommerd is oor XSS-aanvalle. |
plasing | tou | funksie | 'reg' | Hoe om die popover te plaas - outomaties | top | onderste | links | reg. Wanneer 'n funksie gebruik word om die plasing te bepaal, word dit opgeroep met die popover DOM-nodus as sy eerste argument en die snellerelement DOM-nodus as sy tweede. Die |
keurder | tou | onwaar | onwaar | As 'n kieser verskaf word, sal popover-objekte na die gespesifiseerde teikens gedelegeer word. In die praktyk word dit gebruik om dinamiese HTML-inhoud in staat te stel om popovers by te voeg. Sien hierdie en 'n insiggewende voorbeeld . |
sjabloon | string | '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' |
Baseer HTML om te gebruik wanneer die popover geskep word. Die popover's Die popover's
Die buitenste omhulselelement moet die |
titel | tou | element | funksie | '' | Verstek titelwaarde as As 'n funksie gegee word, sal dit genoem word met sy |
sneller | string | 'klik' | Hoe popover geaktiveer word - klik | beweeg | fokus | handleiding. Jy kan verskeie snellers slaag; skei hulle met 'n spasie. manual kan nie met enige ander sneller gekombineer word nie. |
verreken | nommer | string | 0 | Offset van die popover relatief tot sy teiken. Vir meer inligting, verwys na Popper se offset-dokumente . |
terugvalplasing | tou | skikking | 'flip' | Laat toe om te spesifiseer watter posisie Popper op terugval sal gebruik. Vir meer inligting, verwys na Popper se gedragsdokumente |
pasgemaakte Klas | tou | funksie | '' | Voeg klasse by die popover wanneer dit gewys word. Let daarop dat hierdie klasse bygevoeg sal word bykomend tot enige klasse wat in die sjabloon gespesifiseer word. Om veelvuldige klasse by te voeg, skei hulle met spasies: Jy kan ook 'n funksie deurgee wat 'n enkele string moet terugstuur wat bykomende klasname bevat. |
grens | tou | element | 'scrollParent' | Oorloop beperking grens van die popover. Aanvaar die waardes van 'viewport' , 'window' , 'scrollParent' , of 'n HTMLElement-verwysing (slegs JavaScript). Vir meer inligting, verwys na Popper se preventOverflow-dokumente . |
ontsmet | boolean | waar | Aktiveer of deaktiveer die ontsmetting. Indien geaktiveer 'template' , 'content' en 'title' opsies sal ontsmet word. Sien die ontsmettingsmiddel-afdeling in ons JavaScript-dokumentasie . |
witlys | voorwerp | Standaard waarde | Voorwerp wat toegelate eienskappe en etikette bevat |
ontsmetFn | nul | funksie | nul | Hier kan jy jou eie ontsmettingsfunksie verskaf. Dit kan nuttig wees as jy verkies om 'n toegewyde biblioteek te gebruik om ontsmetting uit te voer. |
popperConfig | nul | voorwerp | nul | Sien Popper se konfigurasie om Bootstrap se verstek Popper-konfigurasie te verander |
Data-kenmerke vir individuele popovers
Opsies vir individuele popovers kan alternatiewelik gespesifiseer word deur die gebruik van data-kenmerke, soos hierbo verduidelik.
Metodes
Asinchroniese metodes en oorgange
Alle API-metodes is asynchronies en begin 'n oorgang . Hulle keer terug na die oproeper sodra die oorgang begin is, maar voordat dit eindig . Daarbenewens sal 'n metode-oproep op 'n oorgangskomponent geïgnoreer word .
$().popover(options)
Inisialiseer popovers vir 'n elementversameling.
.popover('show')
Onthul 'n element se popover. Keer terug na die oproeper voordat die popover werklik gewys is (dws voor die shown.bs.popover
gebeurtenis plaasvind). Dit word beskou as 'n "handmatige" sneller van die popover. Popovers waarvan die titel en inhoud beide nul-lengte is, word nooit vertoon nie.
$('#element').popover('show')
.popover('hide')
Versteek 'n element se popover. Keer terug na die beller voordat die popover eintlik versteek is (dws voor die hidden.bs.popover
gebeurtenis plaasvind). Dit word beskou as 'n "handmatige" sneller van die popover.
$('#element').popover('hide')
.popover('toggle')
Wissel 'n element se popover. Keer terug na die beller voordat die popover werklik gewys of versteek is (dws voordat die shown.bs.popover
of hidden.bs.popover
gebeurtenis plaasvind). Dit word beskou as 'n "handmatige" sneller van die popover.
$('#element').popover('toggle')
.popover('dispose')
Versteek en vernietig 'n element se popover. Popovers wat delegering gebruik (wat met die selector
opsie geskep word ) kan nie individueel op afstammelinge-snellerelemente vernietig word nie.
$('#element').popover('dispose')
.popover('enable')
Gee 'n element se popover die vermoë om gewys te word. Popovers is by verstek geaktiveer.
$('#element').popover('enable')
.popover('disable')
Verwyder die vermoë vir 'n element se popover om gewys te word. Die opspringer sal slegs gewys kan word as dit weer geaktiveer is.
$('#element').popover('disable')
.popover('toggleEnabled')
Wissel die vermoë vir 'n element se popover om gewys of versteek te word.
$('#element').popover('toggleEnabled')
.popover('update')
Dateer die posisie van 'n element se popover op.
$('#element').popover('update')
Gebeurtenisse
Soort gebeurtenis | Beskrywing |
---|---|
show.bs.popover | Hierdie gebeurtenis begin onmiddellik wanneer die show instansiemetode geroep word. |
gewys.bs.popover | Hierdie gebeurtenis word afgevuur wanneer die opspringer sigbaar gemaak is vir die gebruiker (sal wag vir CSS-oorgange om te voltooi). |
versteek.bs.popover | Hierdie gebeurtenis word onmiddellik afgevuur wanneer die hide instansiemetode geroep is. |
versteekte.bs.popover | Hierdie gebeurtenis word afgevuur wanneer die popover klaar vir die gebruiker versteek is (sal wag vir CSS-oorgange om te voltooi). |
ingevoeg.bs.popover | Hierdie gebeurtenis word afgevuur na die show.bs.popover gebeurtenis wanneer die popover-sjabloon by die DOM gevoeg is. |
$('#myPopover').on('hidden.bs.popover', function () {
// do something...
})