Aqbeż għall-kontenut prinċipali Aqbeż għan-navigazzjoni tad-dokumenti
Check
in English

Tooltips

Dokumentazzjoni u eżempji għaż-żieda ta 'tooltips Bootstrap personalizzati b'CSS u JavaScript bl-użu ta' CSS3 għal animazzjonijiet u data-bs-attributes għall-ħażna tat-titlu lokali.

Ħarsa ġenerali

Affarijiet li għandek tkun taf meta tuża l-plugin tooltip:

  • Tooltips jiddependu fuq il-librerija ta 'parti terza Popper għall-ippożizzjonar. Trid tinkludi popper.min.js qabel bootstrap.js, jew tuża waħda bootstrap.bundle.min.jsli fiha Popper.
  • Tooltips huma opt-in għal raġunijiet ta' prestazzjoni, għalhekk trid tinizjalizzahom lilek innifsek .
  • Tooltips b'titli ta' tul żero qatt ma jintwerew.
  • Speċifika container: 'body'biex tevita problemi ta' rendering f'komponenti aktar kumplessi (bħal gruppi ta' input tagħna, gruppi ta' buttuni, eċċ).
  • It-tqajjem tooltips fuq elementi moħbija mhux se jaħdem.
  • Tooltips għal .disabledjew disabledelementi għandhom jiġu attivati ​​fuq element tat-tgeżwir.
  • Meta jiġu attivati ​​minn hyperlinks li jkopru linji multipli, it-tooltips se jkunu ċċentrati. Uża white-space: nowrap;fuq tiegħek <a>biex tevita din l-imġieba.
  • Tooltips għandhom ikunu moħbija qabel ma l-elementi korrispondenti tagħhom ikunu tneħħew mid-DOM.
  • Tooltips jistgħu jiġu attivati ​​grazzi għal element ġewwa dell DOM.

Ghandek dak kollu? Kbir, ejja naraw kif jaħdmu ma 'xi eżempji.

B'mod awtomatiku, dan il-komponent juża sanitizer tal-kontenut inkorporat, li jneħħi kwalunkwe elementi HTML li mhumiex permessi b'mod espliċitu. Ara t- taqsima tas-sanitizer fid-dokumentazzjoni JavaScript tagħna għal aktar dettalji.
L-effett ta 'animazzjoni ta' dan il-komponent jiddependi fuq il prefers-reduced-motion-mistoqsija tal-midja. Ara t- taqsima tal-mozzjoni mnaqqsa tad-dokumentazzjoni tagħna dwar l-aċċessibbiltà .

Eżempji

Ippermetti tooltips

Kif issemma hawn fuq, trid inizjalizzaw tooltips qabel ma jkunu jistgħu jintużaw. Mod wieħed biex jiġu inizjalizzati l-tooltips kollha fuq paġna jkun li tagħżelhom skont l- data-bs-toggleattribut tagħhom, bħal dan:

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

Passa fuq il-links hawn taħt biex tara l-għodda:

Test ta' placeholder biex juri xi links inline ma' tooltips. Dan issa huwa biss mili, l-ebda qattiel. Kontenut imqiegħed hawn biss biex jimita l-preżenza ta 'test reali . U dan kollu biex jagħtik idea ta' kif jidhru l-għodda tal-għodda meta jintużaw f'sitwazzjonijiet tad-dinja reali. Allura nisperaw li issa rajt kif dawn it-tooltips fuq links jistgħu jaħdmu fil-prattika, ladarba tużahom fuq is- sit jew il-proġett tiegħek stess .

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>
Ħossok liberu li tuża titlejew data-bs-titlefl-HTML tiegħek. Meta titletintuża, Popper se tissostitwiha awtomatikament ma ' data-bs-titlemeta l-element jiġi mogħti.

Tooltips tad-dwana

Miżjud fi v5.2.0

Tista' tippersonalizza d-dehra ta' tooltips billi tuża varjabbli CSS . Aħna waqqafna klassi tad-dwana data-bs-custom-class="custom-tooltip"biex niskopru d-dehra tad-dwana tagħna u nużawha biex tegħleb varjabbli CSS lokali.

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

Direzzjonijiet

Passa fuq il-buttuni ta' hawn taħt biex tara l-erba' direzzjonijiet tal-għodda: ta' fuq, tal-lemin, ta' isfel u tax-xellug. Id-direzzjonijiet huma riflessi meta tuża Bootstrap f'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>

U b'HTML personalizzat miżjud:

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

B'SVG:

CSS

Varjabbli

Miżjud fi v5.2.0

Bħala parti mill-approċċ tal-varjabbli tas-CSS li qed jevolvu ta' Bootstrap, it-tooltips issa jużaw varjabbli tas-CSS lokali .tooltipgħal adattament imtejjeb f'ħin reali. Il-valuri għall-varjabbli CSS huma stabbiliti permezz ta 'Sass, għalhekk il-personalizzazzjoni ta' Sass għadha appoġġjata wkoll.

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

$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

Użu

Il-plugin tooltip jiġġenera kontenut u markup fuq talba, u awtomatikament iqiegħed tooltips wara l-element grillu tagħhom.

Agħmel it-tooltip permezz ta' JavaScript:

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

Il-pożizzjoni tat-tooltip tipprova tinbidel awtomatikament meta kontenitur ġenitur ikollu overflow: autojew overflow: scrollbħal tagħna .table-responsive, iżda xorta jżomm il-pożizzjonament tat-tqegħid oriġinali. Biex issolvi dan, issettja l- boundarygħażla (għall-modifikatur flip bl-użu tal- popperConfiggħażla) għal kwalunkwe HTMLElement biex jegħleb il-valur default, 'clippingParents', bħal document.body:

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

Markup

Il-markup meħtieġ għal tooltip huwa biss dataattribut u titlefuq l-element HTML tixtieq li jkollok tooltip. Il-markup iġġenerat ta' tooltip huwa pjuttost sempliċi, għalkemm jeħtieġ pożizzjoni (b'mod awtomatiku, issettjat topmill-plugin).

Li tagħmel it-tooltips jaħdmu għall-utenti tat-tastiera u tat-teknoloġija assistiva

Għandek iżżid biss tooltips ma' elementi HTML li tradizzjonalment huma ffukati fuq it-tastiera u interattivi (bħal links jew kontrolli tal-formoli). Għalkemm elementi HTML arbitrarji (bħal <span>s) jistgħu jsiru ffukabbli billi żżid l- tabindex="0"attribut, dan iżid tab stops potenzjalment tedjanti u konfużi fuq elementi mhux interattivi għall-utenti tat-tastiera, u l-biċċa l-kbira tat-teknoloġiji ta 'assistenza bħalissa ma jħabbrux it-tooltip f'din is-sitwazzjoni. Barra minn hekk, tistrieħx biss fuq hoverbħala l-grillu għall-tooltip tiegħek, peress li dan jagħmel it-tooltips tiegħek impossibbli li jiġu attivati ​​għall-utenti tat-tastiera.

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

Elementi b'diżabilità

L-elementi bl- disabledattribut mhumiex interattivi, jiġifieri l-utenti ma jistgħux jiffokaw, jgħadduhom jew ikklikkjahom biex jagħtu bidu għal tooltip (jew popover). Bħala soluzzjoni alternattiva, tkun trid tiskatta l-għodda minn tgeżwir <div>jew <span>, idealment magħmula li tiffoka fuq it-tastiera billi tuża 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>

Għażliet

Peress li l-għażliet jistgħu jiġu mgħoddija permezz ta' attributi tad-dejta jew JavaScript, tista' tehmeż isem ta' għażla ma' data-bs-, bħal f' data-bs-animation="{value}". Kun żgur li tbiddel it-tip tal-każ tal-isem tal-għażla minn " camelCase " għal " kebab-case " meta tgħaddi l-għażliet permezz tal-attributi tad-dejta. Per eżempju, uża data-bs-custom-class="beautifier"minflok data-bs-customClass="beautifier".

Minn Bootstrap 5.2.0, il-komponenti kollha jappoġġaw attribut ta' data riżervat sperimentalidata-bs-config li jista' jospita konfigurazzjoni ta' komponent sempliċi bħala string JSON. Meta element ikollu data-bs-config='{"delay":0, "title":123}'u data-bs-title="456"attributi, il- titlevalur finali se jkun 456u l-attributi tad-dejta separati jegħlbu l-valuri mogħtija fuq data-bs-config. Barra minn hekk, l-attributi tad-dejta eżistenti jistgħu jospitaw valuri JSON bħal data-bs-delay='{"show":0,"hide":150}'.

Innota li għal raġunijiet ta' sigurtà l- għażliet sanitize, sanitizeFn, u allowListma jistgħux jiġu forniti bl-użu ta' attributi tad-dejta.
Isem Tip Default Deskrizzjoni
allowList oġġett Valur default Oġġett li fih attributi u tags permessi.
animation boolean true Applika transizzjoni ta' fade CSS għall-tooltip.
boundary spag, element 'clippingParents' Limitu tar-restrizzjoni ta' overflow tal-għodda (japplika biss għall-modifikatur preventOverflow ta' Popper). B'mod awtomatiku, huwa 'clippingParents'u jista' jaċċetta referenza HTMLElement (permezz ta' JavaScript biss). Għal aktar informazzjoni irreferi għad- dokumenti detectOverflow ta’ Popper .
container spag, element, falz false Jwaħħal it-tooltip ma' element speċifiku. Eżempju: container: 'body'. Din l-għażla hija partikolarment utli peress li tippermettilek li tpoġġi l-tooltip fil-fluss tad-dokument ħdejn l-element triggering - li jipprevjeni l-tooltip milli jżomm f'wiċċ l-ilma 'l bogħod mill-element triggering waqt tibdil tad-daqs tat-tieqa.
customClass spag, funzjoni '' Żid klassijiet mal-tooltip meta jintwera. Innota li dawn il-klassijiet se jiġu miżjuda flimkien ma' kwalunkwe klassi speċifikata fil-mudell. Biex iżżid klassijiet multipli, isseparahom bi spazji: 'class-1 class-2'. Tista 'wkoll tgħaddi funzjoni li għandha tirritorna string waħda li fiha ismijiet ta' klassi addizzjonali.
delay numru, oġġett 0 Dewmien biex juri u jaħbi l-tooltip (ms)—ma japplikax għat-tip ta' trigger manwali. Jekk jiġi fornut numru, id-dewmien jiġi applikat kemm għall-ħbi/turi. L-istruttura tal-oġġett hija: delay: { "show": 500, "hide": 100 }.
fallbackPlacements firxa ['top', 'right', 'bottom', 'left'] Iddefinixxi pjazzamenti ta' riżerva billi tipprovdi lista ta' pjazzamenti f'firxa (f'ordni ta' preferenza). Għal aktar informazzjoni irreferi għad-dokumenti tal- imġieba ta’ Popper .
html boolean false Ħalli HTML fit-tooltip. Jekk veru, it-tikketti HTML fil-tooltip's titlese jiġu mogħtija fil-tooltip. Jekk falza, innerTextil-proprjetà tintuża biex tiddaħħal kontenut fid-DOM. Uża test jekk int inkwetat dwar attakki XSS.
offset firxa, string, funzjoni [0, 0] Offset tal-tooltip relattiv għall-mira tiegħu. Tista' tgħaddi string fl-attributi tad-dejta b'valuri separati bil-virgola bħal: data-bs-offset="10,20". Meta tintuża funzjoni biex tiddetermina l-offset, tissejjaħ b'oġġett li jkun fih it-tqegħid tal-popper, ir-referenza u l-popper rects bħala l-ewwel argument tagħha. L-element triggering node DOM huwa mgħoddi bħala t-tieni argument. Il-funzjoni trid tirritorna firxa b'żewġ numri: skidding , distanza . Għal aktar informazzjoni irreferi għad-dokumenti tal- offset ta’ Popper .
placement spag, funzjoni 'top' Kif tpoġġi l-tooltip: awtomatika, ta 'fuq, ta' isfel, tax-xellug, tal-lemin. Meta autotkun speċifikata, se jorjenta mill-ġdid b'mod dinamiku l-tooltip. Meta tintuża funzjoni biex tiddetermina t-tqegħid, tissejjaħ bin-node DOM tal-għodda bħala l-ewwel argument tagħha u n-nodu DOM tal-element triggering bħala t-tieni. Il- thiskuntest huwa ssettjat għall-istanza tooltip.
popperConfig null, oġġett, funzjoni null Biex tibdel il-konfigurazzjoni default Popper ta' Bootstrap, ara l-konfigurazzjoni ta' Popper . Meta tintuża funzjoni biex tinħoloq il-konfigurazzjoni Popper, din tissejjaħ b'oġġett li fih il-konfigurazzjoni Popper default tal-Bootstrap. Jgħinek tuża u tgħaqqad id-default mal-konfigurazzjoni tiegħek stess. Il-funzjoni trid tirritorna oġġett ta 'konfigurazzjoni għal Popper.
sanitize boolean true Ippermetti jew tiddiżattiva s-sanitizzazzjoni. Jekk jiġi attivat 'template', 'content'u l- 'title'għażliet jiġu sanitizzati.
sanitizeFn null, funzjoni null Hawnhekk tista 'tforni l-funzjoni ta' sanitizza tiegħek stess. Dan jista 'jkun utli jekk tippreferi tuża librerija ddedikata biex twettaq sanitizzazzjoni.
selector spag, falza false Jekk jiġi pprovdut selettur, l-oġġetti tat-tooltip jiġu delegati lill-miri speċifikati. Fil-prattika, dan jintuża biex japplika wkoll tooltips għal elementi DOM miżjuda b'mod dinamiku ( jQuery.onappoġġ). Ara din il-ħarġa u eżempju informattiv .
template spag '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' Bażi HTML biex tuża meta toħloq it-tooltip. It-tooltip's titlese jiġu injettati fil- .tooltip-inner. .tooltip-arrowse ssir il-vleġġa tal-għodda. L-element tat-tgeżwir l-aktar 'il barra għandu jkollu l- .tooltipklassi u role="tooltip".
title spag, element, funzjoni '' Valur tat-titlu default jekk titlel-attribut ma jkunx preżenti. Jekk tingħata funzjoni, din tissejjaħ bir- thisreferenza tagħha ssettjata għall-element li l-popover huwa mwaħħal miegħu.
trigger spag 'hover focus' Kif tiġi attivata l-għodda: ikklikkja, ċċaqlaq, tiffoka, manwal. Inti tista 'tgħaddi triggers multipli; jifredhom bi spazju. 'manual'jindika li l-tooltip se jiġi attivat b'mod programmatiku permezz tal- .tooltip('show'), .tooltip('hide')u .tooltip('toggle')metodi; dan il-valur ma jistax jiġi kkombinat ma' kwalunkwe trigger ieħor. 'hover'waħdu se jirriżulta fi tooltips li ma jistgħux jiġu attivati ​​permezz tat-tastiera, u għandhom jintużaw biss jekk ikunu preżenti metodi alternattivi biex titwassal l-istess informazzjoni għall-utenti tat-tastiera.

Attributi tad-dejta għal tooltips individwali

Għażliet għal tooltips individwali jistgħu alternattivament jiġu speċifikati permezz tal-użu tal-attributi tad-dejta, kif spjegat hawn fuq.

Bl-użu tal-funzjoni mapopperConfig

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

Metodi

Metodi asinkroniċi u tranżizzjonijiet

Il-metodi kollha tal-API huma asinkroniċi u jibdew transizzjoni . Jirritornaw għand min iċempel hekk kif tinbeda t-tranżizzjoni iżda qabel ma tispiċċa . Barra minn hekk, sejħa ta' metodu fuq komponent ta' tranżizzjoni se tiġi injorata .

Ara d-dokumentazzjoni JavaScript tagħna għal aktar informazzjoni .

Metodu Deskrizzjoni
disable Tneħħi l-abbiltà li l-tooltip ta' element jintwera. It-tooltip tkun tista' tintwera biss jekk terġa' tiġi attivata.
dispose Jaħbi u jeqred it-tooltip ta' element (Tneħħi d-dejta maħżuna fuq l-element DOM). Tooltips li jużaw id-delega (li huma maħluqa bl -użu tal - selectorgħażla ) ma jistgħux jinqerdu individwalment fuq elementi ta 'grillu dixxendenti.
enable Jagħti l-abbiltà li jintwera tooltip ta' element. Tooltips huma attivati ​​awtomatikament.
getInstance Metodu statiku li jippermettilek li tikseb l-istanza tooltip assoċjata ma 'element DOM, jew toħloq waħda ġdida f'każ li ma kienx inizjalizzat.
getOrCreateInstance Metodu statiku li jippermettilek li tikseb l-istanza tooltip assoċjata ma 'element DOM, jew toħloq waħda ġdida f'każ li ma kienx inizjalizzat.
hide Jaħbi tooltip ta' element. Jirritorna lil min iċempel qabel ma l-għodda tkun ġiet moħbija (jiġifieri qabel ma hidden.bs.tooltipjseħħ l-avveniment). Dan huwa meqjus bħala attivazzjoni "manwali" tal-tooltip.
setContent Jagħti mod kif jinbidel il-kontenut tal-għodda wara l-inizjalizzazzjoni tiegħu.
show Tiżvela tooltip ta' element. Jirritorna lil min iċempel qabel ma jkun intwera l-għodda (jiġifieri qabel ma shown.bs.tooltipjseħħ l-avveniment). Dan huwa meqjus bħala attivazzjoni "manwali" tal-tooltip. Tooltips b'titli ta' tul żero qatt ma jintwerew.
toggle Jiddawwar il-tooltip ta' element. Jirritorna lil min iċempel qabel ma l-għodda tkun intweriet jew moħbija (jiġifieri qabel ma jseħħ l-avveniment shown.bs.tooltipjew ). hidden.bs.tooltipDan huwa meqjus bħala attivazzjoni "manwali" tal-tooltip.
toggleEnabled Jiddawwar l-abbiltà li l-tooltip ta' element jintwera jew moħbi.
update Taġġorna l-pożizzjoni tat-tooltip ta' element.
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance

// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
Il- setContentmetodu jaċċetta objectargument, fejn kull ċavetta tal-proprjetà hija stringselettur validu fi ħdan il-mudell popover, u kull valur tal-proprjetà relatat jista' jkun string| element| function| null

Avvenimenti

Avveniment Deskrizzjoni
hide.bs.tooltip Dan l-avveniment jiġi sparat immedjatament meta l- hidemetodu tal-istanza jkun ġie msejjaħ.
hidden.bs.tooltip Dan l-avveniment jiġi sparat meta l-popover ikun spiċċa moħbi mill-utent (se jistenna li jitlestew it-tranżizzjonijiet CSS).
inserted.bs.tooltip Dan l-avveniment jiġi sparat wara l- show.bs.tooltipavveniment meta l-mudell tat-tooltip ikun ġie miżjud mad-DOM.
show.bs.tooltip Dan l-avveniment jispara immedjatament meta showjissejjaħ il-metodu tal-istanza.
shown.bs.tooltip Dan l-avveniment jiġi sparat meta l-popover ikun sar viżibbli għall-utent (se jistenna li jitlestew it-tranżizzjonijiet CSS).
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)

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

tooltip.hide()