Gean nei haadynhâld Gean nei dokumintnavigaasje
Check
in English

Tooltips

Dokumintaasje en foarbylden foar it tafoegjen fan oanpaste Bootstrap-arktips mei CSS en JavaScript mei CSS3 foar animaasjes en data-bs-attributen foar lokale titelopslach.

Oersicht

Dingen om te witten by it brûken fan de tooltip-plugin:

  • Tooltips fertrouwe op de tredde partij bibleteek Popper foar posisjonearring. Jo moatte popper.min.js foar opnimme bootstrap.js, of ien brûke bootstrap.bundle.min.jsdy't Popper befettet.
  • Tooltips binne opt-in foar prestaasjesredenen, dus jo moatte se sels inisjalisearje .
  • Tooltips mei titels fan nul lingte wurde nea werjûn.
  • Spesifisearje container: 'body'om it werjaan fan problemen yn kompleksere komponinten te foarkommen (lykas ús ynfiergroepen, knopgroepen, ensfh.).
  • It triggerjen fan tooltips op ferburgen eleminten sil net wurkje.
  • Tooltips foar .disabledof disabledeleminten moatte wurde aktivearre op in wrapper elemint.
  • Wannear't aktivearre wurdt fan hyperlinks dy't meardere rigels oerspant, sille tooltips sintraal wurde. Brûk white-space: nowrap;op jo <a>s om dit gedrach te foarkommen.
  • Tooltips moatte ferburgen wurde foardat de oerienkommende eleminten fan 'e DOM fuortsmiten binne.
  • Tooltips kinne wurde aktivearre troch in elemint binnen in skaad DOM.

Hast dat alles? Geweldich, lit ús sjen hoe't se wurkje mei guon foarbylden.

Standert brûkt dizze komponint de ynboude ynhâldsanitizer, dy't alle HTML-eleminten útstript dy't net eksplisyt tastien binne. Sjoch de seksje sanitizer yn ús JavaScript-dokumintaasje foar mear details.
It animaasje-effekt fan dizze komponint is ôfhinklik fan 'e prefers-reduced-motionmediafraach. Sjoch de seksje mei fermindere beweging fan ús dokumintaasje foar tagonklikens .

Foarbylden

Aktivearje tooltips

Lykas hjirboppe neamd, moatte jo tooltips inisjalisearje foardat se kinne wurde brûkt. Ien manier om alle tooltips op in side te initialisearjen soe wêze om se te selektearjen troch har data-bs-toggleattribút, lykas sa:

const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))

Hoverje oer de keppelings hjirûnder om tooltips te sjen:

Plakhâldertekst om wat ynline keppelings te demonstrearjen mei tooltips. Dit is no gewoan filler, gjin moardner. Ynhâld pleatst hjir gewoan om de oanwêzigens fan echte tekst te imitearjen . En dat alles gewoan om jo in idee te jaan fan hoe't tooltips der útsjen soene as se brûkt wurde yn echte situaasjes. Dus hooplik hawwe jo no sjoen hoe't dizze tooltips oer keppelings yn 'e praktyk kinne wurkje, as jo se ienris op jo eigen side of projekt brûke.

html
<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>
Fiel jo frij om ien titleof data-bs-titleyn jo HTML te brûken. Wannear't titlebrûkt wurdt, sil Popper it automatysk ferfange mei data-bs-titleas it elemint wurdt werjûn.

Oanpaste tooltips

Taheakke yn v5.2.0

Jo kinne it uterlik fan tooltips oanpasse mei CSS-fariabelen . Wy sette in oanpaste klasse mei data-bs-custom-class="custom-tooltip"om ús oanpaste uterlik te berikken en brûke it om in lokale CSS-fariabele te oerskriuwen.

.custom-tooltip {
  --bs-tooltip-bg: var(--bs-primary);
}
html
<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>

Rjochtings

Hoverje oer de knoppen hjirûnder om de fjouwer tooltips-rjochtings te sjen: boppe, rjochts, ûnder en lofts. Rjochtingen wurde spegele by it brûken fan Bootstrap yn RTL.

<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>

En mei oanpast HTML tafoege:

<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>

Mei in SVG:

CSS

Fariabelen

Taheakke yn v5.2.0

As ûnderdiel fan Bootstrap's evoluearjende CSS-fariabelen oanpak, brûke tooltips no lokale CSS-fariabelen op .tooltipfoar ferbettere real-time oanpassing. Wearden foar de CSS-fariabelen wurde ynsteld fia Sass, sadat Sass-oanpassing ek noch stipe wurdt.

  --#{$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 fariabelen

$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

Gebrûk

De tooltip-plugin genereart ynhâld en markearring op fraach, en pleatst standert tooltips nei har trigger-elemint.

Trigger de tooltip fia JavaScript:

const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
Oerfloed autoenscroll

Tooltip-posysje besiket automatysk te feroarjen as in âlderkontener ús hat overflow: autoof overflow: scrollliket .table-responsive, mar hâldt de posysje fan 'e orizjinele pleatsing noch altyd. Om dit op te lossen, set de boundaryopsje (foar de flipmodifier mei de popperConfigopsje) yn op elk HTMLElement om de standertwearde, , te oerskriuwen 'clippingParents', lykas document.body:

const tooltip = new bootstrap.Tooltip('#example', {
  boundary: document.body // or document.querySelector('#boundary')
})

Markup

De fereaske markup foar in tooltip is allinich in dataattribút en titleop it HTML-elemint wolle jo in tooltip hawwe. De generearre markup fan in tooltip is frij ienfâldich, hoewol it in posysje fereasket (standert, ynsteld toptroch de plugin).

Tooltips meitsje foar brûkers fan toetseboerd en assistinte technology

Jo moatte allinich tooltips tafoegje oan HTML-eleminten dy't tradisjoneel toetseboerdfokusber en ynteraktyf binne (lykas keppelings of formulierkontrôles). Hoewol't willekeurige HTML-eleminten (lykas <span>s) fokusber makke wurde kinne troch it tafoegjen fan it tabindex="0"attribút, sil dit potinsjeel ferfelende en betiizjende ljepperstops tafoegje op net-ynteraktive eleminten foar toetseboerdbrûkers, en de measte assistive technologyen kundigje op it stuit de tooltip net yn dizze situaasje oan. Fertrou net allinich op hoveras de trigger foar jo tooltip, om't dit jo tooltips ûnmooglik meitsje sil foar toetseboerdbrûkers.

<!-- 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>

Utskeakele eleminten

Eleminten mei it disabledattribút binne net ynteraktyf, wat betsjut dat brûkers net kinne fokusje, hoverje of klikke om in tooltip (of popover) te triggerjen. As oplossing wolle jo de tooltip fan in wrapper <div>of <span>, ideaal makke toetseboerd-fokusber makke mei tabindex="0".

html
<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>

Opsjes

As opsjes kinne wurde trochjûn fia gegevensattributen of JavaScript, kinne jo in opsjenamme tafoegje oan data-bs-, lykas yn data-bs-animation="{value}". Soargje derfoar dat jo it gefaltype fan 'e opsjenamme feroarje fan " camelCase " nei " kebab-case " as jo de opsjes trochjaan fia gegevensattributen. Brûk bygelyks data-bs-custom-class="beautifier"ynstee fan data-bs-customClass="beautifier".

Fanôf Bootstrap 5.2.0 stypje alle komponinten in eksperiminteel reservearre data-attribút data-bs-configdat ienfâldige komponintkonfiguraasje as in JSON-string kin herbergje. As in elemint hat data-bs-config='{"delay":0, "title":123}'en data-bs-title="456"attributen, de definitive titlewearde sil wêze 456en de aparte gegevens attributen sille oerskriuwe wearden jûn op data-bs-config. Derneist kinne besteande gegevensattributen JSON-wearden lykas data-bs-delay='{"show":0,"hide":150}'.

Tink derom dat om feiligens redenen de sanitize, sanitizeFn, en allowListopsjes net kinne wurde levere mei gegevensattributen.
Namme Type Standert Beskriuwing
allowList objekt Standertwearde Objekt dat tastiene attributen en tags befettet.
animation boolean true Tapasse in CSS-fade-oergong op de tooltip.
boundary string, element 'clippingParents' Overflow beheining grins fan de tooltip (jildt allinnich foar Popper syn preventOverflow modifier). Standert is 'clippingParents'en kin it in HTMLElement-referinsje akseptearje (allinich fia JavaScript). Foar mear ynformaasje ferwize nei Popper's detectOverflow-dokuminten .
container string, elemint, falsk false Foegje de tooltip ta oan in spesifyk elemint. Foarbyld container: 'body':. Dizze opsje is benammen nuttich om't jo de tooltip yn 'e stream fan it dokumint kinne pleatse yn' e buert fan it aktivearjende elemint - wat sil foarkomme dat de tooltip fuortsweefd wurdt fan it triggerelemint by in finstergrutte feroarje.
customClass string, funksje '' Foegje klassen ta oan de tooltip as it wurdt werjûn. Tink derom dat dizze klassen sille wurde tafoege neist alle klassen oantsjutte yn it sjabloan. Om meardere klassen ta te foegjen, skiede se mei spaasjes: 'class-1 class-2'. Jo kinne ek in funksje trochjaan dy't in inkele tekenrige moat weromjaan mei ekstra klassenammen.
delay nûmer, objekt 0 Fertrage it werjaan en ferbergjen fan de tooltip (ms) - jildt net foar manuele triggertype. As in nûmer wurdt levere, wurdt fertraging tapast op sawol hide / show. Objektstruktuer is delay: { "show": 500, "hide": 100 }:.
fallbackPlacements array ['top', 'right', 'bottom', 'left'] Definiearje fallback-pleatsingen troch in list fan pleatsingen yn array te jaan (yn folchoarder fan foarkar). Foar mear ynformaasje ferwize nei Popper's gedrachsdokuminten .
html boolean false Tastean HTML yn de tooltip. As wier, wurde HTML-tags yn 'e tooltip titlewerjûn yn' e tooltip. As falsk, innerTextsil eigendom brûkt wurde om ynhâld yn te foegjen yn 'e DOM. Brûk tekst as jo soargen meitsje oer XSS-oanfallen.
offset array, string, funksje [0, 0] Offset fan de tooltip relatyf oan syn doel. Jo kinne in tekenrige trochjaan yn gegevensattributen mei komma-skieden wearden lykas: data-bs-offset="10,20". As in funksje brûkt wurdt om de offset te bepalen, wurdt it neamd mei in objekt dat de popper pleatsing, de referinsje en popperrects as syn earste argumint befettet. It triggerelemint DOM-knooppunt wurdt trochjûn as it twadde argumint. De funksje moat in array weromjaan mei twa nûmers: skidding , ôfstân . Foar mear ynformaasje ferwize nei Popper's offset -dokuminten .
placement string, funksje 'top' Hoe kinne jo de tooltip pleatse: auto, boppe, ûnder, lofts, rjochts. Wannear autois oantsjutte, sil it de tooltip dynamysk reorientearje. As in funksje brûkt wurdt om de pleatsing te bepalen, wurdt it neamd mei de tooltip DOM-knooppunt as syn earste argumint en it triggerelemint DOM-knooppunt as syn twadde. De thiskontekst is ynsteld op de tooltip-eksimplaar.
popperConfig null, objekt, funksje null Om de standert Popper-konfiguraasje fan Bootstrap te feroarjen, sjoch Popper's konfiguraasje . As in funksje wurdt brûkt om de Popper-konfiguraasje te meitsjen, wurdt it neamd mei in objekt dat de standert Popper-konfiguraasje fan de Bootstrap befettet. It helpt jo de standert te brûken en te fusearjen mei jo eigen konfiguraasje. De funksje moat werom in konfiguraasje foarwerp foar Popper.
sanitize boolean true De sanearring ynskeakelje of útskeakelje. As aktivearre 'template', 'content'en 'title'opsjes sille wurde sanearre.
sanitizeFn null, funksje null Hjir kinne jo jo eigen sanearringsfunksje leverje. Dit kin handich wêze as jo leaver in tawijd bibleteek brûke om sanitaasje út te fieren.
selector string, falsk false As in selector wurdt foarsjoen, sil tooltip objekten wurde delegearre oan de oantsjutte doelen. Yn 'e praktyk wurdt dit brûkt om ek tooltips oan te passen op dynamysk tafoege DOM-eleminten ( jQuery.onstipe). Sjoch dit probleem en in ynformatyf foarbyld .
template string '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' Basis HTML om te brûken by it meitsjen fan de tooltip. De tooltip's titlesille yn 'e .tooltip-inner. .tooltip-arrowsil de pylk fan de tooltip wurde. De bûtenste wrapper elemint moat hawwe de .tooltipklasse en role="tooltip".
title string, elemint, funksje '' Standert titelwearde as titleattribút net oanwêzich is. As in funksje wurdt jûn, wurdt it neamd mei syn thisferwizing set nei it elemint dat de popover is hechte oan.
trigger string 'hover focus' Hoe tooltip wurdt aktivearre: klik, hover, fokus, hânmjittich. Jo kinne meardere triggers trochjaan; skiede se mei in romte. 'manual'jout oan dat de tooltip programmatysk ynskeakele wurdt fia de metoaden .tooltip('show'), .tooltip('hide')en ; .tooltip('toggle')dizze wearde kin net kombinearre wurde mei in oare trigger. 'hover'op har eigen sil resultearje yn tooltips dy't net kinne wurde aktivearre fia it toetseboerd, en moatte allinnich brûkt wurde as alternative metoaden foar it oerbringen fan deselde ynformaasje foar toetseboerd brûkers is oanwêzich.

Data attributen foar yndividuele tooltips

Opsjes foar yndividuele tooltips kinne alternatyf wurde oantsjutte troch it brûken fan gegevensattributen, lykas hjirboppe útlein.

Mei help fan funksje meipopperConfig

const tooltip = new bootstrap.Tooltip(element, {
  popperConfig(defaultBsPopperConfig) {
    // const newPopperConfig = {...}
    // use defaultBsPopperConfig if needed...
    // return newPopperConfig
  }
})

Metoaden

Asynchrone metoaden en transysjes

Alle API-metoaden binne asynchrone en begjinne in oergong . Se komme werom nei de beller sa gau as de oergong is begon, mar foardat it einiget . Derneist sil in metoadeoprop op in oergongskomponint wurde negearre .

Sjoch ús JavaScript-dokumintaasje foar mear ynformaasje .

Metoade Beskriuwing
disable Ferwidert de mooglikheid om de tooltip fan in elemint te sjen. De tooltip sil allinich te sjen wêze kinne as it opnij ynskeakele is.
dispose Ferberget en ferneatiget de tooltip fan in elemint (Ferwidert bewarre gegevens op it DOM-elemint). Tooltips dy't delegaasje brûke (dy't makke binne mei de selectoropsje ) kinne net yndividueel ferneatige wurde op ôfstammende trigger-eleminten.
enable Jout de tooltip fan in elemint de mooglikheid om te sjen. Tooltips binne standert ynskeakele.
getInstance Statyske metoade wêrmei jo de tooltip-eksimplaar kinne krije dy't ferbûn is mei in DOM-elemint, of in nij oanmeitsje foar it gefal dat it net inisjalisearre is.
getOrCreateInstance Statyske metoade wêrmei jo de tooltip-eksimplaar kinne krije dy't ferbûn is mei in DOM-elemint, of in nij oanmeitsje foar it gefal dat it net inisjalisearre is.
hide Ferberget de tooltip fan in elemint. Keart werom nei de beller foardat de tooltip eins ferburgen is (dus foardat it hidden.bs.tooltipbarren bart). Dit wurdt beskôge as in "hânlieding" triggering fan de tooltip.
setContent Jout in manier om de ynhâld fan de tooltip te feroarjen nei syn inisjalisaasje.
show Iepenet de tooltip fan in elemint. Keart werom nei de beller foardat de tooltip wirklik werjûn is (dus foardat it shown.bs.tooltipbarren bart). Dit wurdt beskôge as in "hânlieding" triggering fan de tooltip. Tooltips mei titels fan nul lingte wurde nea werjûn.
toggle Skeakelt de tooltip fan in elemint. Keart werom nei de beller foardat de tooltip wirklik werjûn of ferburgen is (dus foardat it barren shown.bs.tooltipof hidden.bs.tooltipbart). Dit wurdt beskôge as in "hânlieding" triggering fan de tooltip.
toggleEnabled Wizigje de mooglikheid om de tooltip fan in elemint te sjen of te ferbergjen.
update Updatet de posysje fan de tooltip fan in elemint.
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance

// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
De setContentmetoade akseptearret in objectargumint, dêr't eltse eigendom-kaai is in jildich stringselector binnen de popover sjabloan, en elke besibbe eigendom-wearde kin wêze string| element| function| null

Eveneminten

Barren Beskriuwing
hide.bs.tooltip Dit barren wurdt fuortendaliks ûntslein as de hideeksimplaarmetoade oanroppen is.
hidden.bs.tooltip Dit evenemint wurdt ûntslein as de popover klear is ferburgen foar de brûker (sil wachtsje op CSS-oergongen om te foltôgjen).
inserted.bs.tooltip Dit evenemint wurdt ûntslein nei it show.bs.tooltipbarren as de tooltip-sjabloan is tafoege oan de DOM.
show.bs.tooltip Dit evenemint fjoer fuortendaliks as de showeksimplaar metoade wurdt oanroppen.
shown.bs.tooltip Dit evenemint wurdt ûntslein as de popover sichtber makke is foar de brûker (sil wachtsje op CSS-oergongen om te foltôgjen).
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)

myTooltipEl.addEventListener('hidden.bs.tooltip', () => {
  // do something...
})

tooltip.hide()