Konsiletoj
Dokumentado kaj ekzemploj por aldoni kutimajn Bootstrap-konsiletojn kun CSS kaj JavaScript uzante CSS3 por kuraĝigoj kaj datumoj-atributoj por loka titolstokado.
Superrigardo
Aferoj sciindaj kiam uzado de la konsileto-kromaĵo:
- Konsiletoj dependas de la tria-partia biblioteko Popper por poziciigado. Vi devas inkluzivi popper.min.js antaŭ bootstrap.js aŭ uzi
bootstrap.bundle.min.js
/bootstrap.bundle.js
kiu enhavas Popper por ke konsiletoj funkciu! - Se vi konstruas nian JavaScript el la fonto, ĝi postulas
util.js
. - Konsiletoj estas aligitaj 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.
prefers-reduced-motion
amaskomunikila demando. Vidu la
sekcion pri reduktita moviĝo de nia dokumentaro pri alirebleco .
Ĉu vi havas ĉion tion? Bonege, ni vidu kiel ili funkcias kun kelkaj ekzemploj.
Ekzemplo: Ebligu konsiletojn ĉie
Unu maniero pravalorigi ĉiujn konsiletojn sur paĝo estus elekti ilin laŭ ilia data-toggle
atributo:
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
Ekzemploj
Ŝ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.
Ŝvebu super la subaj butonoj por vidi la kvar konsiletojn: supre, dekstre, malsupre kaj maldekstre.
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top">
Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="right" title="Tooltip on right">
Tooltip on right
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">
Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="left" title="Tooltip on left">
Tooltip on left
</button>
Kaj kun kutima HTML aldonita:
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
Tooltip with HTML
</button>
Uzado
La kromkonsileto generas enhavon kaj markadon laŭpeto, kaj defaŭlte metas konsiletojn post ilia ellasilelemento.
Ekfunkciigu la konsileton per JavaScript:
$('#example').tooltip(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, agordu la boundary
opcion al io alia ol defaŭlta valoro, 'scrollParent'
kiel ekzemple 'window'
:
$('#example').tooltip({ boundary: 'window' })
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 klavaro kaj helpteknologiaj uzantoj
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 fokuseblaj 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. Krome, 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-toggle="tooltip" title="Some tooltip text!">Hover over me</a>
<!-- Generated markup by the plugin -->
<div class="tooltip bs-tooltip-top" role="tooltip">
<div class="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 volas ekigi la konsileton de envolvaĵo <div>
aŭ <span>
, ideale farigita klavar-fokusebla per tabindex="0"
, kaj anstataŭi la pointer-events
sur la malfunkciigita elemento.
<span class="d-inline-block" tabindex="0" data-toggle="tooltip" title="Disabled tooltip">
<button class="btn btn-primary" style="pointer-events: none;" type="button" disabled>Disabled button</button>
</span>
Opcioj
Opcioj povas esti pasitaj per datumaj atributoj aŭ JavaScript. Por datumaj atributoj, aldonu la opcionomon al data-
, kiel en data-animation=""
.
sanitize
,
sanitizeFn
kaj
whiteList
ne povas esti provizitaj per datumaj atributoj.
Nomo | Tajpu | Defaŭlte | Priskribo |
---|---|---|---|
animacio | bulea | vera | Apliku CSS-fade-transiron al la konsileto |
ujo | ŝnuro | elemento | malvera | malvera | Aldonas la konsileton al specifa elemento. Ekzemplo: |
prokrasto | 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: |
html | bulea | malvera | Permesu HTML en la konsileto. Se vera, HTML-etikedoj en la konsileto Uzu tekston se vi zorgas pri XSS-atakoj. |
lokigo | ŝnuro | funkcio | 'supro' | Kiel poziciigi la konsileton - aŭtomate | supro | fundo | maldekstra | ĝuste. Kiam funkcio estas uzata por determini la lokigon, ĝi estas vokita kun la konsileto DOM-nodo kiel sia unua argumento kaj la ekiga elemento DOM-nodo kiel sia dua. La |
elektilo | ŝnuro | malvera | malvera | 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 tion kaj informan ekzemplon . |
ŝablono | ŝnuro | '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>' |
Baza HTML por uzi dum kreado de la konsileto. La konsileto
La plej ekstera envolvaĵelemento devus havi la |
titolo | ŝnuro | elemento | funkcio | '' | Defaŭlta titolvaloro se Se funkcio estas donita, ĝi estos vokita kun ĝia |
ellasilon | ŝnuro | 'ŝveba fokuso' | Kiel la konsileto estas ekigita - alklaku | ŝvebi | fokuso | manlibro. Vi povas pasi plurajn ellasilon; apartigu ilin per spaco.
|
ofseto | nombro | ŝnuro | funkcio | 0 | Ofseto de la konsileto rilate al ĝia celo. Kiam funkcio estas uzata por determini la ofseton, ĝi estas vokita kun objekto enhavanta la ofsetajn datumojn kiel sia unua argumento. La funkcio devas redoni objekton kun la sama strukturo. La ekiga elemento DOM-nodo estas pasita kiel la dua argumento. Por pliaj informoj raportu al la ofsetaj dokumentoj de Popper . |
faloLokigo | ŝnuro | tabelo | 'flip' | Permesu specifi, kiun pozicion Popper uzos ĉe repliko. Por pliaj informoj referu al la kondutdokumentoj de Popper |
kutimoKlaso | ŝnuro | 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: Vi ankaŭ povas pasi funkcion kiu devus resendi ununuran ĉenon enhavantan kromajn klasnomojn. |
limo | ŝnuro | elemento | 'scrollParent' | Superflua limo-limo de la konsileto. Akceptas la valorojn de 'viewport' , 'window' , 'scrollParent' , aŭ HTMLElement-referenco (nur JavaScript). Por pliaj informoj raportu al la dokumentoj preventOverflow de Popper . |
sanigi | bulea | vera | Ebligu aŭ malŝalti la sanigon. Se aktivigitaj 'template' kaj 'title' opcioj estos sanigitaj. Vidu la sekcion pri sanigilo en nia JavaScript-dokumentaro . |
Blanka Listo | objekto | Defaŭlta valoro | Objekto kiu enhavas permesitajn atributojn kaj etikedojn |
sanigiFn | nulo | funkcio | nula | Ĉi tie vi povas provizi vian propran sanigan funkcion. Ĉi tio povas esti utila se vi preferas uzi dediĉitan bibliotekon por fari sanigon. |
popperConfig | nulo | objekto | nula | Por ŝanĝi la defaŭltan Popper-agordon de Bootstrap, vidu la agordon de Popper |
Datumaj atributoj por individuaj konsiletoj
Opcioj por individuaj konsiletoj povas alternative esti specifitaj per la uzo de datumaj atributoj, kiel klarigite supre.
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 .
$().tooltip(options)
Alligas konsileton pritraktilon al elementkolekto.
.tooltip('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.
$('#element').tooltip('show')
.tooltip('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.
$('#element').tooltip('hide')
.tooltip('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.
$('#element').tooltip('toggle')
.tooltip('dispose')
Kaŝas kaj detruas la konsileton de elemento. Konsiletoj kiuj uzas delegacion (kiuj estas kreitaj per la selector
opcio ) ne povas esti individue detruitaj sur posteulaj ellasilelementoj.
$('#element').tooltip('dispose')
.tooltip('enable')
Donas al la konsileto de elemento la kapablon esti montrita. Konsiletoj estas ebligitaj defaŭlte.
$('#element').tooltip('enable')
.tooltip('disable')
Forigas la kapablon por montri la konsileton de elemento. La konsileto nur povos esti montrita se ĝi estas reebligita.
$('#element').tooltip('disable')
.tooltip('toggleEnabled')
Ŝaltas la kapablon por ke la konsileto de elemento estu montrita aŭ kaŝita.
$('#element').tooltip('toggleEnabled')
.tooltip('update')
Ĝisdatigas la pozicion de la konsileto de elemento.
$('#element').tooltip('update')
Eventoj
Eventa Tipo | Priskribo |
---|---|
montru.bs.instruilon | Ĉi tiu evento tuj ekfunkciigas kiam la show ekzempla metodo estas vokita. |
montrata.bs.ilotipo | Ĉi tiu evento estas lanĉita kiam la konsileto estas videbla por la uzanto (atendos ke CSS-transiroj finiĝos). |
kaŝi.bs.ilotip | Ĉi tiu evento estas lanĉita tuj kiam la hide ekzempla metodo estas vokita. |
kaŝita.bs.ilotip | Ĉi tiu evento estas lanĉita kiam la konsileto finiĝis kaŝita de la uzanto (atendos ke CSS-transiroj finiĝos). |
enigita.bs.ilotip | Ĉi tiu evento estas lanĉita post la show.bs.tooltip evento kiam la konsileto ŝablono estis aldonita al la DOM. |
$('#myTooltip').on('hidden.bs.tooltip', function () {
// do something...
})