Tooltips
Dokumentatioun an Beispiller fir personaliséiert Bootstrap Tooltips mat CSS a JavaScript ze addéieren mat CSS3 fir Animatiounen an Data-bs-Attributer fir lokal Titellagerung.
Iwwersiicht
Saachen ze wëssen wann Dir den Tooltip Plugin benotzt:
- Tooltips vertrauen op der drëtter Partei Bibliothéik Popper fir positionéieren. Dir musst popper.min.js virun enthalen
bootstrap.js
, oder een benotzenbootstrap.bundle.min.js
deen Popper enthält. - Tooltips sinn opt-in aus Leeschtungsgrënn, also musst Dir se selwer initialiséieren .
- Tooltips mat Null-Längt Titelen ginn ni ugewisen.
- Spezifizéieren
container: 'body'
fir Rendering Probleemer a méi komplexe Komponenten ze vermeiden (wéi eis Inputgruppen, Knäppchengruppen, etc.). - Ausléiser Tooltips op verstoppte Elementer funktionnéieren net.
- Tooltips fir
.disabled
oderdisabled
Elementer muss op engem wrapper Element ausgeléist ginn. - Wann aus Hyperlinks ausgeléist gëtt, déi méi Zeilen spanen, ginn Tooltips zentréiert. Benotzt
white-space: nowrap;
op Är<a>
s dëst Verhalen ze vermeiden. - Tooltips musse verstoppt ginn ier hir entspriechend Elementer aus der DOM geläscht ginn.
- Tooltips kënnen ausgeléist ginn duerch en Element an engem Schied DOM.
Huet dat alles? Super, loosst eis kucken wéi se mat e puer Beispiller funktionnéieren.
prefers-reduced-motion
Medienufro of. Kuckt d'
Reduktiounsbewegungssektioun vun eiser Accessibilitéitsdokumentatioun .
Beispiller
Aktivéiert Tooltips
Wéi uewen ernimmt, musst Dir Tooltips initialiséieren ier se benotzt kënne ginn. Ee Wee fir all Tooltipps op enger Säit ze initialiséieren wier se no hirem data-bs-toggle
Attribut ze wielen, sou wéi:
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
Tooltips op Linken
Hover iwwer d'Links hei drënner fir Tooltipps ze gesinn:
Placeholder Text fir e puer Inline Links mat Tooltips ze demonstréieren. Dëst ass elo just Filler, kee Killer. Inhalt hei gesat just fir d'Präsenz vum richtegen Text ze mimikéieren . An dat alles just fir Iech eng Iddi ze ginn wéi Tooltipps ausgesinn wann se an real-Welt Situatiounen benotzt ginn. Also hoffentlech hutt Dir elo gesinn wéi dës Tooltipps iwwer Links an der Praxis funktionéiere kënnen, wann Dir se op Ärem eegene Site oder Projet benotzt.
<p class="muted">Placeholder text to demonstrate some <a href="#" data-bs-toggle="tooltip" data-bs-title="Default tooltip">inline links</a> with tooltips. This is now just filler, no killer. Content placed here just to mimic the presence of <a href="#" data-bs-toggle="tooltip" data-bs-title="Another tooltip">real text</a>. And all that just to give you an idea of how tooltips would look when used in real-world situations. So hopefully you've now seen how <a href="#" data-bs-toggle="tooltip" data-bs-title="Another one here too">these tooltips on links</a> can work in practice, once you use them on <a href="#" data-bs-toggle="tooltip" data-bs-title="The last tip!">your own</a> site or project.
</p>
title
oder
data-bs-title
an Ärem HTML ze benotzen. Wann
title
et benotzt gëtt, ersetzt de Popper et automatesch mat
data-bs-title
wann d'Element ofgeleet gëtt.
Benotzerdefinéiert Tooltips
Dobäi an v5.2.0Dir kënnt d'Erscheinung vun Tooltips mat CSS Variablen personaliséieren . Mir setzen eng personaliséiert Klass mat data-bs-custom-class="custom-tooltip"
fir eis personaliséiert Erscheinung ze beräicheren a benotzen se fir eng lokal CSS Variabel ze iwwerschreiden.
.custom-tooltip {
--bs-tooltip-bg: var(--bs-primary);
}
<button type="button" class="btn btn-secondary"
data-bs-toggle="tooltip" data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="This top tooltip is themed via CSS variables.">
Custom tooltip
</button>
Richtungen
Hover iwwer d'Knäppercher hei drënner fir déi véier Tooltips Richtungen ze gesinn: uewen, riets, ënnen a lénks. D'Richtunge gi gespigelt wann Dir Bootstrap an RTL benotzt.
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Tooltip on top">
Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-title="Tooltip on right">
Tooltip on right
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Tooltip on bottom">
Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="left" data-bs-title="Tooltip on left">
Tooltip on left
</button>
A mat personaliséierten HTML dobäigesat:
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-html="true" data-bs-title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
Tooltip with HTML
</button>
Mat engem SVG:
CSS
Variablen
Dobäi an v5.2.0Als Deel vum Bootstrap senger evoluéierender CSS Variablen Approche benotzen Tooltips elo lokal CSS Variablen op .tooltip
fir eng verstäerkte Echtzäit Personnalisatioun. Wäerter fir d'CSS Variablen ginn iwwer Sass gesat, sou datt Sass Personnalisatioun och nach ëmmer ënnerstëtzt gëtt.
--#{$prefix}tooltip-zindex: #{$zindex-tooltip};
--#{$prefix}tooltip-max-width: #{$tooltip-max-width};
--#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
--#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
--#{$prefix}tooltip-margin: #{$tooltip-margin};
@include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
--#{$prefix}tooltip-color: #{$tooltip-color};
--#{$prefix}tooltip-bg: #{$tooltip-bg};
--#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
--#{$prefix}tooltip-opacity: #{$tooltip-opacity};
--#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};
--#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};
Sass Variablen
$tooltip-font-size: $font-size-sm;
$tooltip-max-width: 200px;
$tooltip-color: $white;
$tooltip-bg: $black;
$tooltip-border-radius: $border-radius;
$tooltip-opacity: .9;
$tooltip-padding-y: $spacer * .25;
$tooltip-padding-x: $spacer * .5;
$tooltip-margin: null; // TODO: remove this in v6
$tooltip-arrow-width: .8rem;
$tooltip-arrow-height: .4rem;
// fusv-disable
$tooltip-arrow-color: null; // Deprecated in Bootstrap 5.2.0 for CSS variables
// fusv-enable
Benotzung
Den Tooltip Plugin generéiert Inhalt a Markup op Ufro, a setzt als Standard Tooltip no hirem Ausléiserelement.
Ausléiser den Tooltip iwwer JavaScript:
const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
Iwwerschwemmung auto
anscroll
Tooltip Positioun probéiert automatesch z'änneren wann en Elterendeel Container huet overflow: auto
oder overflow: scroll
wéi eis .table-responsive
, awer hält ëmmer d'originell Plazéierungspositioun. Fir dëst ze léisen, setzt d' boundary
Optioun (fir de Flip-Modifier deen d' popperConfig
Optioun benotzt) op all HTMLElement fir de Standardwäert ze iwwerschreiden, 'clippingParents'
, wéi document.body
:
const tooltip = new bootstrap.Tooltip('#example', {
boundary: document.body // or document.querySelector('#boundary')
})
Markup
Déi erfuerderlech Markup fir e Tooltip ass nëmmen en data
Attribut an title
am HTML Element wëllt Dir e Tooltip hunn. De generéierte Markup vun engem Tooltip ass zimmlech einfach, awer et erfuerdert eng Positioun (par défaut, top
vum Plugin gesat).
Maacht Tooltips fir Tastatur an Hëllefstechnologie Benotzer ze schaffen
Dir sollt nëmmen Tooltipps un HTML Elementer addéieren déi traditionell Tastatur fokusséierbar an interaktiv sinn (wéi Linken oder Form Kontrollen). Och wann arbiträr HTML Elementer (wéi <span>
s) fokusséierbar gemaach kënne ginn andeems d' tabindex="0"
Attribut bäigefüügt gëtt, wäert dëst potenziell lästeg a verwirrend Tabstops op net-interaktiven Elementer fir Keyboard Benotzer addéieren, an déi meescht Hëllefstechnologien annoncéieren de Moment net den Tooltip an dëser Situatioun. Zousätzlech, vertrau net eleng op hover
den Ausléiser fir Ären Tooltip, well dëst wäert Är Tooltipps onméiglech maachen fir Tastatur Benotzer auszeléisen.
<!-- HTML to write -->
<a href="#" data-bs-toggle="tooltip" data-bs-title="Some tooltip text!">Hover over me</a>
<!-- Generated markup by the plugin -->
<div class="tooltip bs-tooltip-top" role="tooltip">
<div class="tooltip-arrow"></div>
<div class="tooltip-inner">
Some tooltip text!
</div>
</div>
Behënnert Elementer
Elementer mat dem disabled
Attribut sinn net interaktiv, dat heescht d'Benotzer kënnen net fokusséieren, hoveren oder klicken fir en Tooltip (oder Popover) auszeléisen. Als Léisung wëllt Dir den Tooltip aus engem Wrapper ausléisen <div>
oder <span>
, Idealfall gemaach Keyboard-fokusséierbar mat tabindex="0"
.
<span class="d-inline-block" tabindex="0" data-bs-toggle="tooltip" data-bs-title="Disabled tooltip">
<button class="btn btn-primary" type="button" disabled>Disabled button</button>
</span>
Optiounen
Wéi Optiounen kënnen iwwer Dateattributer oder JavaScript weidergeleet ginn, kënnt Dir en Optiounsnumm op data-bs-
, wéi an data-bs-animation="{value}"
. Vergewëssert Iech de Falltyp vum Optiounsnumm vun " camelCase " op " Kebab-Case " z'änneren wann Dir d'Optiounen iwwer Datenattributer passéiert. Zum Beispill benotzt data-bs-custom-class="beautifier"
amplaz data-bs-customClass="beautifier"
.
Zënter Bootstrap 5.2.0 ënnerstëtzen all Komponenten en experimentellen reservéierten Dateattribut, data-bs-config
deen eng einfach Komponentkonfiguratioun als JSON-String kann ënnerhuelen. Wann en Element data-bs-config='{"delay":0, "title":123}'
an data-bs-title="456"
Attributer huet, gëtt de Finale title
Wäert 456
an déi getrennten Dateattributter iwwerschreiden Wäerter, déi op data-bs-config
. Zousätzlech kënnen existent Datenattributer JSON Wäerter wéi data-bs-delay='{"show":0,"hide":150}'
.
sanitize
,
sanitizeFn
, an d'
allowList
Optiounen net mat Datenattributer geliwwert kënne ginn.
Numm | Typ | Default | Beschreiwung |
---|---|---|---|
allowList |
Objet | Default Wäert | Objet deen erlaabt Attributer an Tags enthält. |
animation |
boolesch | true |
Fëllt en CSS Fade Iwwergank op den Tooltip un. |
boundary |
string, element | 'clippingParents' |
Iwwerschwemmungsgrenze vum Tooltip (gëlt nëmme fir Popper's preventOverflow-Modifier). Par défaut ass et 'clippingParents' a kann eng HTMLElement Referenz akzeptéieren (nëmmen iwwer JavaScript). Fir méi Informatioun kuckt op Popper's detectOverflow docs . |
container |
String, Element, falsch | false |
Fügt den Tooltip un e spezifescht Element un. Beispill container: 'body' :. Dës Optioun ass besonnesch nëtzlech well et Iech erlaabt den Tooltip am Flux vum Dokument no beim Ausléiserelement ze positionéieren - wat verhënnert datt den Tooltip vum Ausléiserelement wärend enger Fënstergréisst schwëmmt. |
customClass |
string, Funktioun | '' |
Füügt Klassen un den Tooltip wann et gewise gëtt. Bedenkt datt dës Klassen zousätzlech zu all Klassen, déi an der Schabloun uginn sinn, bäigefüügt ginn. Fir méi Klassen ze addéieren, trennt se mat Plazen 'class-1 class-2' :. Dir kënnt och eng Funktioun weiderginn, déi eng eenzeg String mat zousätzlech Klassennimm zréckginn soll. |
delay |
nummer, objekt | 0 |
Verzögerung weisen an verstoppen Tooltip (ms) - gëlt net fir manuell Ausléisertyp. Wann eng Zuel geliwwert gëtt, gëtt Verspéidung fir béid verstoppen / weisen applizéiert. Objektstruktur ass delay: { "show": 500, "hide": 100 } :. |
fallbackPlacements |
Array | ['top', 'right', 'bottom', 'left'] |
Definéiert Fallbackplacementer andeems Dir eng Lëscht vu Placementer an der Array ubitt (an der Preferenzuerdnung). Fir méi Informatioun, kuckt op dem Popper säi Verhalensdokumenter . |
html |
boolesch | false |
Erlaabt HTML am Tooltip. Wann et richteg ass, ginn HTML-Tags an den Tooltip am Tooltip title rendered. Wann falsch, gëtt innerText d'Eegeschafte benotzt fir Inhalt an d'DOM anzeginn. Benotzt Text wann Dir besuergt sidd iwwer XSS Attacken. |
offset |
Array, String, Funktioun | [0, 0] |
Offset vum Tooltip relativ zu sengem Zil. Dir kënnt eng String an Datenattributer mat komma getrennte Wäerter passéieren wéi data-bs-offset="10,20" :. Wann eng Funktioun benotzt gëtt fir d'Offset ze bestëmmen, gëtt se mat engem Objet genannt deen d'Popper Placement enthält, d'Referenz a Popper Rects als säin éischten Argument. Den Ausléiserelement DOM Node gëtt als zweet Argument weidergeleet. D'Funktioun muss en Array mat zwou Zuelen zréckginn: Skidding , Distanz . Fir méi Informatioun kuckt op dem Popper seng Offset Docs . |
placement |
string, Funktioun | 'top' |
Wéi positionéiert de Tooltip: Auto, uewen, ënnen, lénks, riets. Wann auto spezifizéiert ass, wäert et den Tooltip dynamesch nei orientéieren. Wann eng Funktioun benotzt gëtt fir d'Placement ze bestëmmen, gëtt se mam Tooltip DOM Node als éischt Argument an dem Ausléiserelement DOM Node als zweet genannt. De this Kontext gëtt op d'Tooltip Instanz gesat. |
popperConfig |
null, Objet, Funktioun | null |
Fir d'Standard Popper Configuratioun vum Bootstrap z'änneren, kuckt d' Popper Konfiguratioun . Wann eng Funktioun benotzt gëtt fir d'Popper Konfiguratioun ze kreéieren, gëtt se mat engem Objet genannt deen d'Standard Popper Konfiguratioun vum Bootstrap enthält. Et hëlleft Iech de Standard mat Ärer eegener Konfiguratioun ze benotzen an ze fusionéieren. D'Funktioun muss e Configuratiounsobjekt fir Popper zréckginn. |
sanitize |
boolesch | true |
Aktivéiert oder deaktivéiert d'Sanéierung. Wann aktivéiert 'template' , 'content' an d' 'title' Optioune ginn desinfizéiert. |
sanitizeFn |
null, funktion | null |
Hei kënnt Dir Är eege Sanitärfunktioun ubidden. Dëst kann nëtzlech sinn wann Dir léiwer eng speziell Bibliothéik benotze fir Sanéierung ze maachen. |
selector |
string, falsch | false |
Wann e Selektor zur Verfügung gestallt gëtt, ginn Tooltip-Objeten op déi spezifizéiert Ziler delegéiert. An der Praxis gëtt dëst benotzt fir och Tooltipps op dynamesch dobäigesate DOM Elementer ( jQuery.on Ënnerstëtzung) anzesetzen. Kuckt dëst Thema an en informativt Beispill . |
template |
String | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
Baséiert HTML fir ze benotzen wann Dir den Tooltip erstellt. D'Tooltip title gëtt an de .tooltip-inner . .tooltip-arrow wäert de Pfeil vum Tooltip ginn. Dat äusserst Wrapperelement sollt d' .tooltip Klass an role="tooltip" . |
title |
String, Element, Funktioun | '' |
Standard Titelwäert wann title Attribut net präsent ass. Wann eng Funktioun gëtt, gëtt se genannt mat senger this Referenz op d'Element, op deem de Popover verbonnen ass. |
trigger |
String | 'hover focus' |
Wéi Tooltip ausgeléist gëtt: klickt, hover, fokusséieren, manuell. Dir kënnt verschidde Ausléiser passéieren; trennt se mat engem Raum. 'manual' weist datt den Tooltip programmatesch iwwer d' .tooltip('show') , .tooltip('hide') a .tooltip('toggle') Methoden ausgeléist gëtt; dëse Wäert kann net mat all aner Ausléiser kombinéiert ginn. 'hover' eleng wäert zu Tooltipps resultéieren, déi net iwwer d'Tastatur ausgeléist kënne ginn, a sollten nëmme benotzt ginn wann alternativ Methoden fir déiselwecht Informatioun fir Tastaturbenotzer präsent sinn. |
Donnéeën Attributer fir eenzel tooltips
Optiounen fir eenzel Tooltips kënnen alternativ duerch d'Benotzung vun Datenattributer spezifizéiert ginn, wéi uewen erkläert.
Benotzt Funktioun matpopperConfig
const tooltip = new bootstrap.Tooltip(element, {
popperConfig(defaultBsPopperConfig) {
// const newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
Methoden
Asynchron Methoden an Iwwergäng
All API Methoden sinn asynchron a starten en Iwwergang . Si ginn zréck op den Uruffer soubal den Iwwergang ugefaang ass, awer ier en eriwwer ass . Zousätzlech gëtt e Methodruff op eng Iwwergangskomponent ignoréiert .
Method | Beschreiwung |
---|---|
disable |
Entfernt d'Fäegkeet fir den Tooltip vun engem Element ze weisen. Den Tooltip kann nëmme gewise ginn wann et nei ageschalt ass. |
dispose |
Verstoppt an zerstéiert den Tooltip vun engem Element (läscht gespäichert Daten am DOM-Element). Tooltipps déi Delegatioun benotzen (déi mat der selector Optioun erstallt ginn ) kënnen net individuell op Descendant Trigger Elementer zerstéiert ginn. |
enable |
Gëtt dem Tooltip vun engem Element d'Méiglechkeet ze weisen. Tooltips sinn als Standard aktivéiert. |
getInstance |
Statesch Method déi Iech erlaabt d'Tooltip Instanz mat engem DOM Element assoziéiert ze kréien, oder eng nei ze kreéieren am Fall datt se net initialiséiert gouf. |
getOrCreateInstance |
Statesch Method déi Iech erlaabt d'Tooltip Instanz mat engem DOM Element assoziéiert ze kréien, oder eng nei ze kreéieren am Fall datt se net initialiséiert gouf. |
hide |
Verstoppt den Tooltip vun engem Element. Gitt zréck op den Uruffer ier den Tooltip tatsächlech verstoppt gouf (dh ier d' hidden.bs.tooltip Evenement geschitt ass). Dëst gëtt als "manuell" Ausléisung vum Tooltip ugesinn. |
setContent |
Gëtt e Wee fir den Inhalt vum Tooltip no senger Initialiséierung z'änneren. |
show |
Entdeckt den Tooltip vun engem Element. Gitt zréck op den Uruffer ier den Tooltip tatsächlech gewisen gouf (dh ier d' shown.bs.tooltip Evenement geschitt ass). Dëst gëtt als "manuell" Ausléisung vum Tooltip ugesinn. Tooltips mat Null-Längt Titelen ginn ni ugewisen. |
toggle |
Wiesselt den Tooltip vun engem Element. Gitt zréck op den Uruffer ier den Tooltip tatsächlech gewisen oder verstoppt goufshown.bs.tooltip ( dh ier den hidden.bs.tooltip Event geschitt ass). Dëst gëtt als "manuell" Ausléisung vum Tooltip ugesinn. |
toggleEnabled |
Wiesselt d'Fäegkeet fir den Tooltip vun engem Element ze weisen oder ze verstoppen. |
update |
Aktualiséiert d'Positioun vum Tooltip vun engem Element. |
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance
// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
setContent
Method akzeptéiert en
object
Argument, wou all Propriétéit-Schlëssel eng valabel
string
selector bannent Popover Schabloun ass, an all Zesummenhang Propriétéit-Wäert kann
string
|
element
|
function
|
null
Evenementer
Event | Beschreiwung |
---|---|
hide.bs.tooltip |
Dëst Evenement gëtt direkt gebrannt wann d' hide Instanzmethod genannt gouf. |
hidden.bs.tooltip |
Dëst Evenement gëtt ofgeléist wann de Popover fäerdeg ass vum Benotzer verstoppt ze ginn (waart op CSS Iwwergäng fir fäerdeg ze sinn). |
inserted.bs.tooltip |
Dëst Evenement gëtt nom show.bs.tooltip Event ofgeschaaft wann d'Tooltip Schabloun un d'DOM bäigefüügt gouf. |
show.bs.tooltip |
Dëst Event brennt direkt wann d' show Instanzmethod genannt gëtt. |
shown.bs.tooltip |
Dëst Evenement gëtt ausgeléist wann de Popover fir de Benotzer siichtbar gemaach gouf (waart bis CSS Iwwergäng fäerdeg sinn). |
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', () => {
// do something...
})
tooltip.hide()