Konsiletoj
Dokumentado kaj ekzemploj por aldoni kutimajn Bootstrap-konsiletojn kun CSS kaj JavaScript uzante CSS3 por kuraĝigoj kaj datumoj-bs-atributoj por loka titolstokado.
Superrigardo
Aferoj sciindaj kiam uzado de la konsileto-kromaĵo:
- Konsiletoj dependas de la triaparta biblioteko Popper por poziciigado. Vi devas inkluzivi popper.min.js antaŭ
bootstrap.js
, aŭ uzi unubootstrap.bundle.min.js
kiu enhavas Popper. - Konsiletoj estas elekteblaj pro agado-kialoj, do vi devas pravigi ilin mem .
- Konsiletoj kun nullongaj titoloj neniam estas montrataj.
- Specifu
container: 'body'
por eviti bildigajn problemojn en pli kompleksaj komponantoj (kiel niaj eniggrupoj, butongrupoj, ktp). - Deĉenigi konsiletojn pri kaŝitaj elementoj ne funkcios.
- Konsiletoj por
.disabled
aŭdisabled
elementoj devas esti ekigitaj sur envolvaĵelemento. - Kiam ĝi estas ekigita de hiperligoj kiuj ampleksas plurajn liniojn, konsiletoj estos centritaj. Uzu
white-space: nowrap;
sur via<a>
por eviti ĉi tiun konduton. - Konsiletoj devas esti kaŝitaj antaŭ ol iliaj respondaj elementoj estis forigitaj de la DOM.
- Konsiletoj povas esti ekigitaj danke al elemento ene de ombro DOM.
Ĉu vi havas ĉion tion? Bonege, ni vidu kiel ili funkcias kun kelkaj ekzemploj.
prefers-reduced-motion
amaskomunikila demando. Vidu la
sekcion pri reduktita moviĝo de nia dokumentaro pri alirebleco .
Ekzemploj
Ebligu konsiletojn
Kiel menciite supre, vi devas praligi konsiletojn antaŭ ol ili povas esti uzataj. Unu maniero pravalorigi ĉiujn konsiletojn sur paĝo estus elekti ilin laŭ ilia data-bs-toggle
atributo, tiel:
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
Konsiletoj pri ligiloj
Ŝvebu super la subaj ligiloj por vidi konsiletojn:
Anstataŭilo-teksto por montri kelkajn enliniajn ligilojn kun konsiletoj. Ĉi tio nun estas nur plenigaĵo, neniu murdinto. Enhavo metita ĉi tie nur por imiti la ĉeeston de reala teksto . Kaj ĉio tio nur por doni al vi ideon pri kiel aspektus konsiletoj se uzataj en realaj situacioj. Do espereble vi nun vidis kiel ĉi tiuj konsiletoj pri ligiloj povas funkcii praktike, post kiam vi uzas ilin en via propra retejo aŭ projekto.
<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
aŭ
data-bs-title
en via HTML. Kiam
title
estas uzata, Popper anstataŭigos ĝin aŭtomate per
data-bs-title
kiam la elemento estas prezentita.
Propraj konsiletoj
Aldonita en v5.2.0Vi povas agordi la aspekton de konsiletoj per CSS-variabloj . Ni starigas kutiman klason kun data-bs-custom-class="custom-tooltip"
por ampleksi nian kutiman aspekton kaj uzi ĝin por anstataŭi lokan CSS-variablon.
.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>
Direktoj
Ŝvebu super la subaj butonoj por vidi la kvar konsiletojn: supre, dekstre, malsupre kaj maldekstre. Direktoj estas spegulitaj kiam vi uzas Bootstrap en 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>
Kaj kun kutima HTML aldonita:
<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>
Kun SVG:
CSS
Variabloj
Aldonita en v5.2.0Kiel parto de la aliro al evoluantaj CSS-variabloj de Bootstrap, konsiletoj nun uzas lokajn CSS .tooltip
-variablojn por plibonigita realtempa personigo. Valoroj por la CSS-variabloj estas fiksitaj per Sass, do ankaŭ Sass-adaptigo ankoraŭ estas subtenata.
--#{$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-variabloj
$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
Uzado
La kromkonsileto generas enhavon kaj markadon laŭpeto, kaj defaŭlte metas konsiletojn post ilia ellasilelemento.
Ekfunkciigu la konsileton per JavaScript:
const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
Superfluo auto
kajscroll
Konsileto-pozicio provas aŭtomate ŝanĝiĝi kiam gepatra ujo havas overflow: auto
aŭ overflow: scroll
ŝatas nian .table-responsive
, sed daŭre konservas la poziciigon de la origina lokigo. Por solvi ĉi tion, agordu la boundary
opcion (por la flip modifilo uzante la popperConfig
opcion) al iu ajn HTMLElement por anstataŭi la defaŭltan valoron, 'clippingParents'
kiel ekzemple document.body
:
const tooltip = new bootstrap.Tooltip('#example', {
boundary: document.body // or document.querySelector('#boundary')
})
Markado
La bezonata markado por konsileto estas nur data
atributo kaj title
sur la HTML-elemento vi deziras havi konsileton. La generita markado de konsileto estas sufiĉe simpla, kvankam ĝi postulas pozicion (defaŭlte, agordita top
de la kromaĵo).
Funkcii konsiletojn por uzantoj de klavaro kaj helpteknologio
Vi nur aldonu konsiletojn al HTML-elementoj, kiuj tradicie estas klavar-fokuseblaj kaj interagaj (kiel ekzemple ligiloj aŭ formularaj kontroloj). Kvankam arbitraj HTML-elementoj (kiel <span>
s) povas esti enfokusigitaj per aldonado de la tabindex="0"
atributo, tio aldonos eble ĝenajn kaj konfuzajn tabuladojn sur ne-interagaj elementoj por klavaruzantoj, kaj la plej multaj helpaj teknologioj nuntempe ne anoncas la konsileton en ĉi tiu situacio. Aldone, ne fidu nur hover
kiel la ellasilon por via konsileto, ĉar ĉi tio faros viajn konsiletojn neeble ekfunkcieblaj por klavaruzantoj.
<!-- 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>
Malebligitaj elementoj
Elementoj kun la disabled
atributo ne estas interagaj, tio signifas, ke uzantoj ne povas fokusi, ŝvebi aŭ klaki ilin por ekigi konsileton (aŭ popover). Kiel solvo, vi volos ekigi la konsileton de envolvaĵo <div>
aŭ <span>
, ideale farita klavar-fokusebla per 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>
Opcioj
Ĉar opcioj povas esti pasigitaj per datumaj atributoj aŭ JavaScript, vi povas almeti opcionomon al data-bs-
, kiel en data-bs-animation="{value}"
. Nepre ŝanĝu la kazon de la opcionomo de " camelCase " al " kebab-case " kiam vi pasas la opciojn per datumaj atributoj. Ekzemple, uzu data-bs-custom-class="beautifier"
anstataŭ data-bs-customClass="beautifier"
.
Ekde Bootstrap 5.2.0, ĉiuj komponantoj subtenas eksperimentan rezervitan datuman atributon data-bs-config
, kiu povas enhavi simplan komponan agordon kiel JSON-ĉeno. Kiam elemento havas data-bs-config='{"delay":0, "title":123}'
kaj data-bs-title="456"
atributojn, la fina title
valoro estos 456
kaj la apartaj datumaj atributoj anstataŭigos valorojn donitajn sur data-bs-config
. Krome, ekzistantaj datumaj atributoj povas enhavi JSON-valorojn kiel data-bs-delay='{"show":0,"hide":150}'
.
sanitize
,
sanitizeFn
, kaj
allowList
ne povas esti provizitaj per datumaj atributoj.
Nomo | Tajpu | Defaŭlte | Priskribo |
---|---|---|---|
allowList |
objekto | Defaŭlta valoro | Objekto kiu enhavas permesitajn atributojn kaj etikedojn. |
animation |
bulea | true |
Apliki CSS-fade-transiron al la konsileto. |
boundary |
ŝnuro, elemento | 'clippingParents' |
Superflua limlimo de la konsileto (validas nur por la modifilo preventOverflow de Popper). Defaŭlte, ĝi estas 'clippingParents' kaj povas akcepti HTMLElement-referencon (nur per JavaScript). Por pliaj informoj, rigardu la dokumentojn de detectOverflow de Popper . |
container |
ŝnuro, elemento, falsa | false |
Aldonas la konsileton al specifa elemento. Ekzemplo: container: 'body' . Ĉi tiu opcio estas precipe utila pro tio, ke ĝi ebligas al vi poziciigi la konsileton en la fluo de la dokumento proksime de la ekiganta elemento - kio malhelpos, ke la ilotipo flosu for de la ekiganta elemento dum fenestro-regrandigo. |
customClass |
string, funkcio | '' |
Aldonu klasojn al la konsileto kiam ĝi montriĝas. Notu, ke ĉi tiuj klasoj estos aldonitaj aldone al iuj klasoj specifitaj en la ŝablono. Por aldoni plurajn klasojn, apartigu ilin per spacoj: 'class-1 class-2' . Vi ankaŭ povas pasi funkcion kiu devus resendi ununuran ĉenon enhavantan kromajn klasnomojn. |
delay |
nombro, objekto | 0 |
Prokrasto montri kaj kaŝi la konsileton (ms)—ne validas por mana ellasiltipo. Se nombro estas provizita, prokrasto estas aplikata al ambaŭ kaŝi/montri. Objekta strukturo estas: delay: { "show": 500, "hide": 100 } . |
fallbackPlacements |
tabelo | ['top', 'right', 'bottom', 'left'] |
Difinu rezervlokigojn disponigante liston de allokigoj en tabelo (laŭ ordo de prefero). Por pliaj informoj raportu al la kondutdokumentoj de Popper . |
html |
bulea | false |
Permesu HTML en la konsileto. Se vera, HTML-etikedoj en la konsileto title estos prezentitaj en la konsileto. Se malvera, innerText posedaĵo estos uzata por enmeti enhavon en la DOM. Uzu tekston se vi zorgas pri XSS-atakoj. |
offset |
tabelo, ĉeno, funkcio | [0, 0] |
Ofseto de la konsileto rilate al ĝia celo. Vi povas pasi ĉenon en datumaj atributoj kun komo apartigitaj valoroj kiel: data-bs-offset="10,20" . Kiam funkcio estas uzata por determini la ofseton, ĝi estas vokita kun objekto enhavanta la popper-lokigon, la referencon kaj popper-rektojn kiel sia unua argumento. La ekiga elemento DOM-nodo estas pasita kiel la dua argumento. La funkcio devas redoni tabelon kun du nombroj: skidding , distance . Por pliaj informoj raportu al la ofsetaj dokumentoj de Popper . |
placement |
string, funkcio | 'top' |
Kiel poziciigi la konsileton: aŭtomate, supre, malsupre, maldekstre, dekstre. Kiam auto estas specifita, ĝi dinamike reorientiĝos la konsileto. Kiam funkcio estas uzata por determini la lokigon, ĝi estas vokita kun la konsileto DOM-nodo kiel sia unua argumento kaj la ekiganta elemento DOM-nodo kiel sia dua. La this kunteksto estas agordita al la konsileto-instanco. |
popperConfig |
nulo, objekto, funkcio | null |
Por ŝanĝi la defaŭltan Popper-agordon de Bootstrap, vidu la agordon de Popper . Kiam funkcio estas uzata por krei la Popper-agordon, ĝi estas vokita kun objekto kiu enhavas la defaŭltan Popper-agordon de Bootstrap. Ĝi helpas vin uzi kaj kunfandi la defaŭltan kun via propra agordo. La funkcio devas resendi agordan objekton por Popper. |
sanitize |
bulea | true |
Ebligu aŭ malŝalti la sanigon. Se aktivigita 'template' , 'content' kaj 'title' opcioj estos sanigitaj. |
sanitizeFn |
nula, funkcio | null |
Ĉi tie vi povas provizi vian propran sanigan funkcion. Ĉi tio povas esti utila se vi preferas uzi dediĉitan bibliotekon por fari sanigon. |
selector |
string, falsa | false |
Se elektilo estas disponigita, konsiletaj objektoj estos delegitaj al la specifitaj celoj. En praktiko, ĉi tio ankaŭ estas uzata por apliki konsiletojn al dinamike aldonitaj DOM-elementoj ( jQuery.on subteno). Vidu ĉi tiun numeron kaj informan ekzemplon . |
template |
ŝnuro | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
Baza HTML por uzi dum kreado de la konsileto. La konsileto title estos injektitaj en la .tooltip-inner . .tooltip-arrow fariĝos la sago de la konsileto. La plej ekstera envolvaĵelemento devus havi la .tooltip klason kaj role="tooltip" . |
title |
ŝnuro, elemento, funkcio | '' |
Defaŭlta titolvaloro se title atributo ne ĉeestas. Se funkcio estas donita, ĝi estos vokita kun ĝia this referenco aro al la elemento al kiu la popover estas ligita. |
trigger |
ŝnuro | 'hover focus' |
Kiel la konsileto estas ekigita: klaku, ŝvebi, fokusi, manlibron. Vi povas pasi plurajn ellasilon; apartigu ilin per spaco. 'manual' indikas ke la konsileto estos ekigita programe per la .tooltip('show') , .tooltip('hide') kaj .tooltip('toggle') metodoj; ĉi tiu valoro ne povas esti kombinita kun iu ajn alia ellasilo. 'hover' memstare rezultos en konsiletoj kiuj ne povas esti ekigitaj per la klavaro, kaj devus nur esti uzitaj se alternativaj metodoj por peri la samajn informojn por klavaruzantoj ĉeestas. |
Datumaj atributoj por individuaj konsiletoj
Opcioj por individuaj konsiletoj povas alternative esti specifitaj per la uzo de datumaj atributoj, kiel klarigite supre.
Uzante funkcion kunpopperConfig
const tooltip = new bootstrap.Tooltip(element, {
popperConfig(defaultBsPopperConfig) {
// const newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
Metodoj
Nesinkronaj metodoj kaj transiroj
Ĉiuj API-metodoj estas nesinkronaj kaj komencas transiron . Ili revenas al la alvokanto tuj kiam la transiro estas komencita sed antaŭ ol ĝi finiĝas . Krome, metodovoko sur transira komponento estos ignorita .
Metodo | Priskribo |
---|---|
disable |
Forigas la kapablon por montri la konsileton de elemento. La konsileto nur povos esti montrita se ĝi estas reebligita. |
dispose |
Kaŝas kaj detruas la konsileton de elemento (Forigas konservitajn datumojn sur la DOM-elemento). Konsiletoj kiuj uzas delegacion (kiuj estas kreitaj per la selector opcio ) ne povas esti individue detruitaj sur posteulaj ellasilelementoj. |
enable |
Donas al la konsileto de elemento la kapablon esti montrita. Konsiletoj estas ebligitaj defaŭlte. |
getInstance |
Senmova metodo, kiu ebligas al vi akiri la konsileton asociitan kun DOM-elemento, aŭ krei novan se ĝi ne estis pravigita. |
getOrCreateInstance |
Senmova metodo, kiu ebligas al vi akiri la konsileton asociitan kun DOM-elemento, aŭ krei novan se ĝi ne estis pravigita. |
hide |
Kaŝas la konsileton de elemento. Revenas al la alvokanto antaŭ ol la konsileto efektive estis kaŝita (te antaŭ ol la hidden.bs.tooltip evento okazas). Ĉi tio estas konsiderata "mana" ekigado de la konsileto. |
setContent |
Donas manieron ŝanĝi la enhavon de la konsileto post ĝia inicialigo. |
show |
Rivelas la konsileton de elemento. Revenas al la alvokanto antaŭ ol la konsileto efektive estis montrita (te antaŭ ol la shown.bs.tooltip evento okazas). Ĉi tio estas konsiderata "mana" ekigado de la konsileto. Konsiletoj kun nullongaj titoloj neniam estas montrataj. |
toggle |
Ŝaltas la konsileton de elemento. Revenas al la alvokanto antaŭ ol la konsileto efektive estis montrita aŭ kaŝita (t.e. antaŭ ol la shown.bs.tooltip evento hidden.bs.tooltip okazas). Ĉi tio estas konsiderata "mana" ekigado de la konsileto. |
toggleEnabled |
Ŝaltas la kapablon por ke la konsileto de elemento estu montrita aŭ kaŝita. |
update |
Ĝisdatigas la pozicion de la konsileto de elemento. |
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance
// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
setContent
metodo akceptas
object
argumenton, kie ĉiu posedaĵo-ŝlosilo estas valida
string
elektilo ene de la popover ŝablono, kaj ĉiu rilata posedaĵo-valoro povas esti
string
|
element
|
function
|
null
Eventoj
Evento | Priskribo |
---|---|
hide.bs.tooltip |
Ĉi tiu evento estas lanĉita tuj kiam la hide ekzempla metodo estas vokita. |
hidden.bs.tooltip |
Ĉi tiu evento estas lanĉita kiam la popover finiĝis kaŝita de la uzanto (atendos ke CSS-transiroj finiĝos). |
inserted.bs.tooltip |
Ĉi tiu evento estas lanĉita post la show.bs.tooltip evento kiam la konsileto ŝablono estis aldonita al la DOM. |
show.bs.tooltip |
Ĉi tiu evento tuj ekfunkciigas kiam la show ekzempla metodo estas vokita. |
shown.bs.tooltip |
Ĉi tiu evento estas lanĉita kiam la popover fariĝis videbla al la uzanto (atendos ke CSS-transiroj finiĝos). |
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', () => {
// do something...
})
tooltip.hide()