Tooltips
Dokumentasi lan conto kanggo nambah tooltips Bootstrap khusus karo CSS lan JavaScript nggunakake CSS3 kanggo animasi lan data-bs-atribut kanggo panyimpenan judhul lokal.
Ringkesan
Sing kudu dingerteni nalika nggunakake plugin tooltip:
- Tooltips gumantung ing Popper perpustakaan pihak katelu kanggo posisi. Sampeyan kudu kalebu popper.min.js sadurunge
bootstrap.js
, utawa nggunakake salah sijibootstrap.bundle.min.js
sing ngemot Popper. - Tooltips dipilih kanggo alasan kinerja, dadi sampeyan kudu miwiti dhewe .
- Tooltips karo judhul nol-dawa ora tau ditampilake.
- Nemtokake
container: 'body'
kanggo ngindhari masalah rendering ing komponen sing luwih rumit (kayata grup input, grup tombol, lsp). - Triggering tooltips ing unsur didhelikake ora bakal bisa.
- Tooltips kanggo
.disabled
utawadisabled
unsur kudu micu ing unsur wrapper. - Nalika dipicu saka hyperlinks sing mbentang sawetara baris, tooltips bakal tengah. Gunakake
white-space: nowrap;
ing<a>
s kanggo supaya prilaku iki. - Tooltips kudu didhelikake sadurunge unsur sing cocog wis dibusak saka DOM.
- Tooltips bisa micu thanks kanggo unsur nang bayangan DOM.
Wis kabeh iku? Apik, ayo ndeleng cara kerjane karo sawetara conto.
prefers-reduced-motion
pitakon media. Deleng
bagean gerakan suda saka dokumentasi aksesibilitas kita .
Tuladha
Aktifake tooltips
Kaya kasebut ing ndhuwur, sampeyan kudu miwiti tooltips sadurunge bisa digunakake. Salah siji cara kanggo miwiti kabeh tooltip ing kaca yaiku milih kanthi data-bs-toggle
atribut, kayata:
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
Tooltips ing pranala
Tutul ing pranala ing ngisor iki kanggo ndeleng tooltips:
Teks placeholder kanggo nduduhake sawetara pranala inline karo tooltips. Iki saiki mung pengisi, ora ana pembunuh. Isi diselehake ing kene mung kanggo niru anane teks nyata . Lan kabeh iku mung kanggo menehi idea babagan carane tooltip bakal katon nalika digunakake ing kahanan nyata. Dadi, muga-muga sampeyan saiki wis weruh carane tooltips ing pranala iki bisa digunakake ing praktik, yen sampeyan nggunakake ing situs utawa proyek sampeyan dhewe .
<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
utawa
data-bs-title
ing HTML. Nalika
title
digunakake, Popper bakal ngganti kanthi otomatis
data-bs-title
nalika unsur wis render.
Tooltips khusus
Ditambahake ing v5.2.0Sampeyan bisa ngatur tampilan tooltips nggunakake variabel CSS . Kita nyetel kelas khusus data-bs-custom-class="custom-tooltip"
kanggo nyakup tampilan khusus lan digunakake kanggo ngatasi variabel CSS lokal.
.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>
arah
Tutul ing tombol ing ngisor iki kanggo ndeleng papat tooltip arah: ndhuwur, tengen, ngisor, lan kiwa. Arah dicerminake nalika nggunakake Bootstrap ing 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>
Lan karo HTML khusus ditambahake:
<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>
Kanthi SVG:
CSS
Variabel
Ditambahake ing v5.2.0Minangka bagéan saka pendekatan variabel CSS Bootstrap sing berkembang, tooltips saiki nggunakake variabel CSS lokal .tooltip
kanggo kustomisasi wektu nyata sing ditingkatake. Nilai kanggo variabel CSS disetel liwat Sass, supaya kustomisasi Sass isih didhukung.
--#{$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};
Variabel Sass
$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
Panggunaan
Plugin tooltip ngasilake konten lan markup sing dikarepake, lan kanthi gawan nyelehake tooltip sawise unsur pemicu.
Micu tooltip liwat JavaScript:
const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
Kebanjiran auto
lanscroll
Posisi tooltip nyoba ngganti kanthi otomatis nalika wadhah induk duwe overflow: auto
utawa overflow: scroll
seneng karo kita .table-responsive
, nanging tetep posisi penempatan asli. Kanggo ngatasi masalah iki, setel boundary
opsi (kanggo pengubah flip nggunakake popperConfig
opsi) menyang HTMLElement kanggo ngganti nilai standar 'clippingParents'
, kayata document.body
:
const tooltip = new bootstrap.Tooltip('#example', {
boundary: document.body // or document.querySelector('#boundary')
})
Markup
Markup sing dibutuhake kanggo tooltip mung data
atribut lan title
ing unsur HTML sampeyan pengin duwe tooltip. Markup sing digawe saka tooltip cukup prasaja, sanajan mbutuhake posisi (kanthi standar, disetel top
dening plugin).
Nggawe tooltip bisa digunakake kanggo pangguna keyboard lan teknologi pitulung
Sampeyan mung kudu nambah tooltips menyang unsur HTML sing tradisional fokus keyboard lan interaktif (kayata pranala utawa kontrol formulir). Senajan unsur HTML kasepakatan (kayata <span>
s) bisa digawe fokus kanthi nambah tabindex="0"
atribut, iki bakal nambah potensi ngganggu lan mbingungake tab mandheg ing unsur non-interaktif kanggo pangguna keyboard, lan paling teknologi assistive saiki ora ngumumake tooltip ing kahanan iki. Kajaba iku, aja ngandelake mung hover
minangka pemicu tooltip sampeyan, amarga iki bakal nggawe tooltip sampeyan ora bisa dipicu kanggo pangguna keyboard.
<!-- 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>
Unsur dipatèni
Elemen karo disabled
atribut ora interaktif, tegese pangguna ora bisa fokus, hover, utawa ngeklik kanggo micu tooltip (utawa popover). Minangka solusi, sampeyan pengin micu tooltip saka pambungkus <div>
utawa <span>
, saenipun digawe keyboard-focusable nggunakake 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>
Pilihan
Minangka opsi bisa liwati liwat atribut data utawa JavaScript, sampeyan bisa nambah jeneng pilihan kanggo data-bs-
, kaya ing data-bs-animation="{value}"
. Priksa manawa kanggo ngganti jinis kasus jeneng pilihan saka " camelCase " kanggo " kebab-case " nalika ngliwati pilihan liwat atribut data. Contone, nggunakake data-bs-custom-class="beautifier"
tinimbang data-bs-customClass="beautifier"
.
Ing Bootstrap 5.2.0, kabeh komponen ndhukung atribut data sing dilindhungi eksperimendata-bs-config
sing bisa ngemot konfigurasi komponen sing prasaja minangka string JSON. Nalika unsur duwe data-bs-config='{"delay":0, "title":123}'
lan data-bs-title="456"
atribut, title
nilai pungkasan bakal 456
lan atribut data sing kapisah bakal ngilangi nilai sing diwenehake ing data-bs-config
. Kajaba iku, atribut data sing ana bisa ngemot nilai JSON kaya data-bs-delay='{"show":0,"hide":150}'
.
sanitize
,
sanitizeFn
, lan
allowList
opsi ora bisa diwenehake nggunakake atribut data.
jeneng | Jinis | Default | Katrangan |
---|---|---|---|
allowList |
obyek | Nilai standar | Obyek sing ngemot atribut lan tag sing diidini. |
animation |
boolean | true |
Gunakake transisi fade CSS menyang tooltip. |
boundary |
string, unsur | 'clippingParents' |
Watesan watesan kebanjiran tooltip (mung ditrapake kanggo modifier preventOverflow Popper). Kanthi gawan, iku 'clippingParents' lan bisa nampa referensi HTMLElement (mung liwat JavaScript). Kanggo informasi luwih lengkap waca docs detectOverflow Popper . |
container |
string, unsur, palsu | false |
Nambah tooltip menyang unsur tartamtu. Tuladha: container: 'body' . Opsi iki migunani banget amarga ngidini sampeyan nyetel tooltip ing aliran dokumen ing cedhak unsur pemicu - sing bakal nyegah tooltip ngambang adoh saka unsur pemicu nalika ngowahi ukuran jendhela. |
customClass |
string, fungsi | '' |
Tambah kelas menyang tooltip nalika ditampilake. Elinga yen kelas iki bakal ditambahake saliyane kelas sing ditemtokake ing cithakan. Kanggo nambah sawetara kelas, misahake karo spasi: 'class-1 class-2' . Sampeyan uga bisa pass fungsi sing ngirim bali senar siji ngemot jeneng kelas tambahan. |
delay |
nomer, obyek | 0 |
Tundha nuduhake lan ndhelikake tooltip (ms)—ora ditrapake kanggo jinis pemicu manual. Yen nomer diwenehake, wektu tundha ditrapake kanggo ndhelikake / nuduhake. Struktur obyek yaiku: delay: { "show": 500, "hide": 100 } . |
fallbackPlacements |
susunan | ['top', 'right', 'bottom', 'left'] |
Nemtokake placements fallback kanthi menehi dhaptar panggonan ing array (miturut preferensi). Kanggo informasi luwih lengkap waca docs prilaku Popper . |
html |
boolean | false |
Ngidini HTML ing tooltip. Yen bener, tag HTML ing tooltip title bakal ditampilake ing tooltip. Yen palsu, innerText properti bakal digunakake kanggo nglebokake isi menyang DOM. Gunakake teks yen sampeyan kuwatir babagan serangan XSS. |
offset |
array, string, fungsi | [0, 0] |
Offset tooltip relatif kanggo target. Sampeyan bisa ngliwati senar ing atribut data kanthi nilai sing dipisahake koma kaya: data-bs-offset="10,20" . Nalika fungsi digunakake kanggo nemtokake offset, diarani obyek sing ngemot panggonan popper, referensi, lan popper rects minangka argumen pisanan. Node DOM unsur pemicu dilewati minangka argumen kapindho. Fungsi kasebut kudu ngasilake array kanthi rong nomer: skidding , distance . Kanggo informasi luwih lengkap waca docs offset Popper . |
placement |
string, fungsi | 'top' |
Carane posisi tooltip: otomatis, ndhuwur, ngisor, kiwa, tengen. Yen auto wis ditemtokake, bakal ngowahi tooltip kanthi dinamis. Nalika fungsi digunakake kanggo nemtokake panggonan, diarani simpul DOM tooltip minangka argumen pisanan lan unsur pemicu DOM node minangka kaloro. Konteks this disetel menyang conto tooltip. |
popperConfig |
null, obyek, fungsi | null |
Kanggo ngganti konfigurasi Popper standar Bootstrap, ndeleng konfigurasi Popper . Nalika fungsi digunakake kanggo nggawe konfigurasi Popper, diarani obyek sing ngemot konfigurasi Popper standar Bootstrap. Iki mbantu sampeyan nggunakake lan nggabungake standar karo konfigurasi sampeyan dhewe. Fungsi kasebut kudu ngasilake obyek konfigurasi kanggo Popper. |
sanitize |
boolean | true |
Aktifake utawa mateni sanitasi. Yen diaktifake 'template' , 'content' lan 'title' pilihan bakal diresiki. |
sanitizeFn |
null, fungsi | null |
Ing kene sampeyan bisa nyedhiyakake fungsi sanitasi dhewe. Iki bisa migunani yen sampeyan luwih seneng nggunakake perpustakaan khusus kanggo nindakake sanitasi. |
selector |
string, palsu | false |
Yen pamilih diwenehake, obyek tooltip bakal didelegasikan menyang target sing ditemtokake. Ing laku, iki digunakake uga kanggo aplikasi tooltips kanggo mbosenke ditambahaké unsur DOM ( jQuery.on support). Waca masalah iki lan conto informatif . |
template |
senar | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
HTML dhasar kanggo digunakake nalika nggawe tooltip. Tooltip title bakal disuntikake menyang .tooltip-inner . .tooltip-arrow bakal dadi panah tooltip. Unsur pambungkus paling njaba kudu duwe .tooltip kelas lan role="tooltip" . |
title |
string, elemen, fungsi | '' |
Nilai judhul standar yen title atribut ora ana. Yen fungsi diwenehi, iku bakal disebut karo this referensi disetel kanggo unsur sing popover ditempelake. |
trigger |
senar | 'hover focus' |
Carane tooltip dipicu: klik, hover, fokus, manual. Sampeyan bisa ngliwati sawetara pemicu; misahake karo spasi. 'manual' nuduhake yen tooltip bakal micu programmatically liwat .tooltip('show') , .tooltip('hide') lan .tooltip('toggle') cara; Nilai iki ora bisa digabungake karo pemicu liyane. 'hover' dhewe bakal kasil tooltips sing ora bisa micu liwat keyboard, lan mung kudu digunakake yen cara alternatif kanggo ngirim informasi sing padha kanggo pangguna keyboard saiki. |
Atribut data kanggo tooltip individu
Pilihan kanggo tooltip individu bisa uga ditemtokake liwat nggunakake atribut data, kaya sing diterangake ing ndhuwur.
Nggunakake fungsi karopopperConfig
const tooltip = new bootstrap.Tooltip(element, {
popperConfig(defaultBsPopperConfig) {
// const newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
Metode
Cara lan transisi asinkron
Kabeh cara API ora sinkron lan miwiti transisi . Dheweke bali menyang panelpon sanalika transisi diwiwiti nanging sadurunge rampung . Kajaba iku, panggilan metode ing komponen transisi bakal diabaikan .
Deleng dokumentasi JavaScript kita kanggo informasi luwih lengkap .
Metode | Katrangan |
---|---|
disable |
Mbusak kemampuan kanggo nuduhake tooltip unsur. Tooltip mung bakal bisa ditampilake yen wis diaktifake maneh. |
dispose |
Ndhelikake lan ngrusak tooltip unsur (Mbusak data sing disimpen ing unsur DOM). Tooltips sing nggunakake delegasi (sing digawe nggunakake pilihanselector ) ora bisa dirusak individu ing unsur pemicu turunan. |
enable |
Menehi tooltip unsur kemampuan kanggo ditampilake. Tooltips diaktifake kanthi gawan. |
getInstance |
Cara statis sing ngidini sampeyan entuk conto tooltip sing ana gandhengane karo unsur DOM, utawa nggawe sing anyar yen ora diwiwiti. |
getOrCreateInstance |
Cara statis sing ngidini sampeyan entuk conto tooltip sing ana gandhengane karo unsur DOM, utawa nggawe sing anyar yen ora diwiwiti. |
hide |
Ndhelikake tooltip unsur. Bali menyang panelpon sadurunge tooltip bener-bener didhelikake (yaiku sadurunge hidden.bs.tooltip kedadeyan kasebut). Iki dianggep minangka "manual" pemicu tooltip. |
setContent |
Menehi cara kanggo ngganti isi tooltip sawise wiwitan. |
show |
Nuduhake tooltip unsur. Bali menyang panelpon sadurunge tooltip wis bener ditampilake (yaiku sadurunge shown.bs.tooltip acara kedaden). Iki dianggep minangka "manual" pemicu tooltip. Tooltips karo judhul nol-dawa ora tau ditampilake. |
toggle |
Ngalih tooltip unsur. Bali menyang panelpon sadurunge tooltip wis bener ditampilake utawa didhelikake (yaiku sadurunge acara shown.bs.tooltip utawa hidden.bs.tooltip kedadeyan). Iki dianggep minangka "manual" pemicu tooltip. |
toggleEnabled |
Ngalih kemampuan kanggo tooltip unsur supaya ditampilake utawa didhelikake. |
update |
Nganyari posisi tooltip unsur. |
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance
// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
setContent
kasebut nampa
object
argumentasi, ing ngendi saben kunci properti minangka
string
pamilih sing bener ing cithakan popover, lan saben nilai properti sing gegandhengan bisa dadi
string
|
element
|
function
|
null
Acara
Acara | Katrangan |
---|---|
hide.bs.tooltip |
Acara iki langsung dipecat nalika hide metode conto wis diarani. |
hidden.bs.tooltip |
Acara iki dipecat nalika popover wis rampung didhelikake saka pangguna (bakal ngenteni transisi CSS rampung). |
inserted.bs.tooltip |
Acara iki dipecat sawise show.bs.tooltip acara nalika cithakan tooltip wis ditambahake menyang DOM. |
show.bs.tooltip |
Acara iki langsung murub nalika show metode conto diarani. |
shown.bs.tooltip |
Acara iki dipecat nalika popover wis katon kanggo pangguna (bakal ngenteni transisi CSS rampung). |
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', () => {
// do something...
})
tooltip.hide()