Popovers
Dokumentation och exempel för att lägga till Bootstrap popovers, som de som finns i iOS, till valfritt element på din webbplats.
Saker att veta när du använder popover-plugin:
- Popovers förlitar sig på tredje parts bibliotek Popper.js för positionering. Du måste inkludera popper.min.js före bootstrap.js eller använda
bootstrap.bundle.min.js
/bootstrap.bundle.js
som innehåller Popper.js för att popovers ska fungera! - Popovers kräver verktygstipsplugin som ett beroende.
- Om du bygger vårt JavaScript från källan kräver
util.js
det . - Popovers är opt-in av prestandaskäl, så du måste initiera dem själv .
- Nolllängd
title
ochcontent
värden kommer aldrig att visa en popover. - Ange
container: 'body'
för att undvika att problem återges i mer komplexa komponenter (som våra indatagrupper, knappgrupper, etc). - Att utlösa popovers på dolda element kommer inte att fungera.
- Popovers för
.disabled
ellerdisabled
element måste utlösas på ett omslagselement. - När de utlöses från ankare som lindas över flera linjer, kommer popovers att centreras mellan ankarnas totala bredd. Använd
white-space: nowrap;
på din<a>
s för att undvika detta beteende. - Popovers måste döljas innan deras motsvarande element har tagits bort från DOM.
Fortsätt läsa för att se hur popovers fungerar med några exempel.
Ett sätt att initiera alla popovers på en sida är att välja dem efter deras data-toggle
attribut:
När du har några stilar på ett överordnat element som stör en popover, vill du ange en anpassad container
så att popoverens HTML visas i det elementet istället.
<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>
Fyra alternativ är tillgängliga: topp-, höger-, botten- och vänsterjusterad.
Använd focus
triggern för att ta bort popovers vid nästa klick på ett annat element än växlingselementet.
Specifik uppmärkning krävs för att ta bort-vid-nästa-klick
För korrekt beteende över webbläsare och plattformar måste du använda <a>
taggen, inte<button>
taggen, och du måste även inkludera ett tabindex
attribut.
<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>
Element med disabled
attributet är inte interaktiva, vilket innebär att användare inte kan hålla muspekaren eller klicka på dem för att utlösa en popover (eller verktygstips). Som en lösning bör du trigga popover från ett omslag <div>
eller <span>
åsidosätta pointer-events
det inaktiverade elementet.
För inaktiverade popover-utlösare kanske du också föredrar data-trigger="hover"
att popover-fönstret visas som omedelbar visuell feedback till dina användare eftersom de kanske inte förväntar sig att klicka på ett inaktiverat element.
<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>
Aktivera popovers via JavaScript:
Alternativ kan skickas via dataattribut eller JavaScript. För dataattribut, lägg till alternativnamnet till data-
, som i data-animation=""
.
namn | Typ | Standard | Beskrivning |
---|---|---|---|
animation | booleskt | Sann | Tillämpa en CSS-tonningsövergång på popover-fönstret |
behållare | sträng | element | falsk | falsk | Lägger till popover till ett specifikt element. Exempel: |
innehåll | sträng | element | fungera | '' | Standardvärde för innehåll om Om en funktion ges kommer den att anropas med dess |
dröjsmål | nummer | objekt | 0 | Fördröjning av att visa och dölja popover (ms) - gäller inte manuell triggertyp Om ett nummer tillhandahålls tillämpas fördröjning på både hide/show Objektstrukturen är: |
html | booleskt | falsk | Infoga HTML i popover-fönstret. Om det är falskt kommer jQuerys text metod att användas för att infoga innehåll i DOM. Använd text om du är orolig för XSS-attacker. |
placering | sträng | fungera | 'höger' | Så här placerar du popover - auto | topp | botten | vänster | höger. När en funktion används för att bestämma placeringen anropas den med popover-DOM-noden som sitt första argument och det utlösande elementet DOM-noden som sin andra. Kontexten |
väljare | sträng | falsk | falsk | Om en väljare tillhandahålls kommer popover-objekt att delegeras till de angivna målen. I praktiken används detta för att dynamiskt HTML-innehåll ska kunna läggas till popovers. Se detta och ett informativt exempel . |
mall | sträng | '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' |
Basera HTML att använda när du skapar popover. Popover Popover
Det yttersta omslagselementet ska ha |
titel | sträng | element | fungera | '' | Standardtitelvärde om Om en funktion ges kommer den att anropas med dess |
utlösare | sträng | 'klick' | Hur popover utlöses - klicka på | sväva | fokus | manuell. Du kan passera flera triggers; separera dem med ett mellanslag. "manuell" kan inte kombineras med någon annan trigger. |
offset | nummer | sträng | 0 | Förskjutning av popover i förhållande till dess mål. För mer information se Popper.js offset -dokument . |
fallbackPlacering | sträng | array | 'flip' | Tillåt att ange vilken position Popper kommer att använda vid reserv. För mer information se Popper.js beteendedokumentation |
gräns | sträng | element | 'scrollParent' | Överflödesbegränsningsgräns för popover. Accepterar värdena för 'viewport' , 'window' , 'scrollParent' eller en HTMLElement-referens (endast JavaScript). För mer information se Popper.js preventOverflow -dokument . |
Dataattribut för enskilda popovers
Alternativ för individuella popovers kan alternativt specificeras genom användning av dataattribut, som förklarats ovan.
Asynkrona metoder och övergångar
Alla API - metoder är asynkrona och startar en övergång . De återvänder till den som ringer så snart övergången har påbörjats men innan den slutar . Dessutom kommer ett metodanrop på en övergångskomponent att ignoreras .
Initierar popovers för en elementsamling.
Avslöjar ett elements popover. Återgår till den som ringer innan popover faktiskt har visats (dvs innan shown.bs.popover
händelsen inträffar). Detta anses vara en "manuell" utlösning av popover. Popovers vars både titel och innehåll är noll-längd visas aldrig.
Döljer ett elements popover. Återgår till den som ringer innan popover faktiskt har dolts (dvs innan hidden.bs.popover
händelsen inträffar). Detta anses vara en "manuell" utlösning av popover.
Växlar ett elements popover. Återgår till den som ringer innan popover faktiskt har visats eller dolt (dvs innan händelsen shown.bs.popover
eller hidden.bs.popover
inträffar). Detta anses vara en "manuell" utlösning av popover.
Döljer och förstör ett elements popover. Popovers som använder delegering (som skapas med alternativet selector
) kan inte förstöras individuellt på underliggande triggerelement.
Ger ett elements popover möjligheten att visas. Popovers är aktiverade som standard.
Tar bort möjligheten för ett elements popover att visas. Popover kommer bara att kunna visas om det återaktiveras.
Växlar möjligheten för ett elements popover att visas eller döljas.
Uppdaterar positionen för ett elements popover.
Event typ | Beskrivning |
---|---|
show.bs.popover | Denna händelse aktiveras omedelbart när show instansmetoden anropas. |
visas.bs.popover | Den här händelsen aktiveras när popoveren har gjorts synlig för användaren (väntar på att CSS-övergångar ska slutföras). |
hide.bs.popover | Denna händelse aktiveras omedelbart när hide instansmetoden har anropats. |
hidden.bs.popover | Den här händelsen aktiveras när popover-fönstret har döljts för användaren (väntar på att CSS-övergångar ska slutföras). |
insatt.bs.popover | Denna händelse aktiveras efter show.bs.popover händelsen när popover-mallen har lagts till i DOM. |