Këshilla për veglat
Dokumentacioni dhe shembuj për shtimin e këshillave të veglave të personalizuara të Bootstrap me CSS dhe JavaScript duke përdorur CSS3 për animacione dhe atribute të dhënash për ruajtjen e titujve lokalë.
Vështrim i përgjithshëm
Gjërat që duhet të dini kur përdorni shtojcën e këshillës së veglave:
- Këshillat e veglave mbështeten në bibliotekën e palës së tretë Popper për pozicionimin. Duhet të përfshini popper.min.js përpara bootstrap.js ose përdorni
bootstrap.bundle.min.js
/bootstrap.bundle.js
që përmban Popper në mënyrë që këshillat e veglave të funksionojnë! - Këshillat e veglave janë të zgjedhura për arsye të performancës, prandaj duhet t'i inicializoni vetë .
- Këshillat e veglave me tituj me gjatësi zero nuk shfaqen kurrë.
- Specifikoni
container: 'body'
për të shmangur paraqitjen e problemeve në komponentë më kompleksë (si grupet tona të hyrjes, grupet e butonave, etj.). - Aktivizimi i këshillave të veglave në elementë të fshehur nuk do të funksionojë.
- Këshillat e veglave për
.disabled
osedisabled
elementët duhet të aktivizohen në një element mbështjellës. - Kur aktivizohen nga hiperlidhjet që përfshijnë linja të shumta, këshillat e veglave do të përqendrohen. Përdorni
white-space: nowrap;
në tuaj<a>
për të shmangur këtë sjellje. - Këshillat e veglave duhet të fshihen përpara se elementët e tyre përkatës të hiqen nga DOM.
- Këshillat e veglave mund të aktivizohen falë një elementi brenda një DOM hije.
prefers-reduced-motion
pyetja e medias. Shikoni
seksionin e lëvizjes së reduktuar të dokumentacionit tonë të aksesueshmërisë .
I keni të gjitha këto? E shkëlqyeshme, le të shohim se si funksionojnë me disa shembuj.
Shembull: Aktivizo këshillat e veglave kudo
Një mënyrë për të inicializuar të gjitha këshillat e veglave në një faqe do të ishte përzgjedhja e tyre sipas data-bs-toggle
atributit të tyre:
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl)
})
Shembuj
Zhvendosni mbi lidhjet e mëposhtme për të parë këshillat e veglave:
Teksti i vendmbajtësit për të demonstruar disa lidhje inline me këshilla veglash. Ky tani është vetëm mbushës, jo vrasës. Përmbajtja e vendosur këtu vetëm për të imituar praninë e tekstit real . Dhe e gjithë kjo vetëm për t'ju dhënë një ide se si do të dukeshin këshillat e veglave kur përdoren në situata të botës reale. Pra, shpresojmë se tani e keni parë se si këto këshilla veglash në lidhje mund të funksionojnë në praktikë, pasi t'i përdorni ato në faqen ose projektin tuaj .
Zhvendosni pezull mbi butonat më poshtë për të parë udhëzimet e katër këshillave të veglave: lart, djathtas, poshtë dhe majtas. Udhëzimet pasqyrohen kur përdorni Bootstrap në RTL.
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top">
Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="right" title="Tooltip on right">
Tooltip on right
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Tooltip on bottom">
Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="left" title="Tooltip on left">
Tooltip on left
</button>
Dhe me HTML të shtuar të personalizuar:
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
Tooltip with HTML
</button>
Me një SVG:
Sass
Variablat
$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: 0;
$tooltip-arrow-width: .8rem;
$tooltip-arrow-height: .4rem;
$tooltip-arrow-color: $tooltip-bg;
Përdorimi
Shtojca e këshillës së veglave gjeneron përmbajtje dhe shënime sipas kërkesës, dhe si parazgjedhje vendos këshillat e veglave pas elementit të tyre të aktivizimit.
Aktivizoni këshillën e veglave përmes JavaScript:
var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, options)
Mbushje auto
dhescroll
Pozicioni i këshillës së veglave përpiqet të ndryshojë automatikisht kur një kontejner prind ka overflow: auto
ose overflow: scroll
pëlqen tonën .table-responsive
, por ende ruan pozicionimin e vendosjes origjinale. Për ta zgjidhur këtë, vendosni boundary
opsionin (për modifikuesin e rrokullisjes duke përdorur popperConfig
opsionin) në çdo HTMLElement për të anashkaluar vlerën e paracaktuar, si 'clippingParents'
p.sh.document.body
var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, {
boundary: document.body // or document.querySelector('#boundary')
})
Markup
Shënimi i kërkuar për një këshillë mjeti është vetëm një data
atribut dhe title
në elementin HTML dëshironi të keni një këshillë mjeti. Shënimi i krijuar i një këshille veglash është mjaft i thjeshtë, megjithëse kërkon një pozicion (si parazgjedhje, i caktuar top
nga shtojca).
Bërja që këshillat e veglave të funksionojnë për përdoruesit e tastierës dhe teknologjisë ndihmëse
Ju duhet të shtoni vetëm këshilla veglash në elementët HTML që tradicionalisht janë të fokusueshëm në tastierë dhe ndërveprues (të tilla si lidhjet ose kontrollet e formularit). Megjithëse elementët arbitrarë të HTML (si p.sh. <span>
s) mund të bëhen të fokusueshëm duke shtuar tabindex="0"
atributin, kjo do të shtojë skeda potencialisht të bezdisshme dhe konfuze në elementët jointeraktivë për përdoruesit e tastierës dhe shumica e teknologjive ndihmëse aktualisht nuk e shpallin këshillën e veglave në këtë situatë. Për më tepër, mos u mbështetni vetëm hover
si shkas për këshillën tuaj të veglave, pasi kjo do ta bëjë të pamundur aktivizimin e këshillave tuaja të veglave për përdoruesit e tastierës.
<!-- HTML to write -->
<a href="#" data-bs-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="tooltip-arrow"></div>
<div class="tooltip-inner">
Some tooltip text!
</div>
</div>
Elemente me aftësi të kufizuara
Elementet me disabled
atributin nuk janë ndërveprues, që do të thotë se përdoruesit nuk mund të fokusohen, të qëndrojnë pezull ose t'i klikojnë për të aktivizuar një këshillë veglash (ose popover). Si një zgjidhje, do të dëshironi të aktivizoni këshillën e veglave nga një mbështjellës <div>
ose <span>
i bërë në mënyrë ideale të fokusuar në tastierë duke përdorur tabindex="0"
.
<span class="d-inline-block" tabindex="0" data-bs-toggle="tooltip" title="Disabled tooltip">
<button class="btn btn-primary" type="button" disabled>Disabled button</button>
</span>
Opsione
Opsionet mund të kalohen nëpërmjet atributeve të të dhënave ose JavaScript. Për atributet e të dhënave, shtoni emrin e opsionit në data-bs-
, si në data-bs-animation=""
. Sigurohuni që të ndryshoni llojin e rastit të emrit të opsionit nga camelCase në kebab-case kur kaloni opsionet përmes atributeve të të dhënave. Për shembull, në vend që të përdorni data-bs-customClass="beautifier"
, përdorni data-bs-custom-class="beautifier"
.
sanitize
,
sanitizeFn
, dhe
allowList
nuk mund të jepen duke përdorur atributet e të dhënave.
Emri | Lloji | E paracaktuar | Përshkrim |
---|---|---|---|
animation |
logjike | true |
Aplikoni një tranzicion të zbehjes së CSS në këshillën e veglave |
container |
varg | element | i rremë | false |
Shton këshillën e veglave në një element specifik. Shembull: |
delay |
numri | Objekt | 0 |
Vonesa e shfaqjes dhe fshehjes së këshillës së veglës (ms) - nuk vlen për llojin manual të shkrepjes Nëse jepet një numër, vonesa zbatohet për të dy fshehjen/shfaqjen Struktura e objektit është: |
html |
logjike | false |
Lejo HTML në këshillën e veglave. Nëse është e vërtetë, etiketat HTML në këshillat e veglave Përdorni tekst nëse jeni të shqetësuar për sulmet XSS. |
placement |
varg | funksionin | 'top' |
Si të poziciononi këshillën e veglave - auto | krye | fund | majtas | drejtë. Kur një funksion përdoret për të përcaktuar vendosjen, ai thirret me nyjen DOM si argument të parë dhe elementin nxitës nyjen DOM si të dytën. Konteksti |
selector |
varg | i rremë | false |
Nëse ofrohet një përzgjedhës, objektet e këshillës së veglave do t'u delegohen objektivave të specifikuara. Në praktikë, kjo përdoret për të aplikuar gjithashtu këshilla veglash për elementët DOM të shtuar në mënyrë dinamike ( jQuery.on mbështetje). Shihni këtë dhe një shembull informues . |
template |
varg | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
Bazë HTML për t'u përdorur kur krijoni këshillën e veglave. Maja e veglave
Elementi më i jashtëm i mbështjellësit duhet të ketë |
title |
varg | element | funksionin | '' |
Vlera e parazgjedhur e titullit nëse Nëse jepet një funksion, ai do të thirret me grupin e tij |
trigger |
varg | 'hover focus' |
Si aktivizohet këshilla e veglave - klikoni | rri pezull | fokus | manual. Ju mund të kaloni disa shkaktarë; ndani ato me një hapësirë.
|
fallbackPlacements |
varg | ['top', 'right', 'bottom', 'left'] |
Përcaktoni vendosjet e kthimit duke ofruar një listë të vendosjeve në grup (sipas preferencës). Për më shumë informacion referojuni dokumenteve të sjelljes së Popper-it |
boundary |
varg | element | 'clippingParents' |
Kufiri i kufizimit të tejmbushjes së këshillës së veglave (zbatohet vetëm për modifikuesin preventOverflow të Popper). Si parazgjedhje është 'clippingParents' dhe mund të pranojë një referencë HTMLElement (vetëm nëpërmjet JavaScript). Për më shumë informacion referojuni dokumenteve të detectOverflow të Popper . |
customClass |
varg | funksionin | '' |
Shtoni klasa në këshillën e veglave kur shfaqet. Vini re se këto klasa do të shtohen përveç çdo klase të specifikuar në shabllon. Për të shtuar klasa të shumta, ndajini ato me hapësira: Ju gjithashtu mund të kaloni një funksion që duhet të kthejë një varg të vetëm që përmban emra shtesë të klasave. |
sanitize |
logjike | true |
Aktivizo ose çaktivizo dezinfektimin. Nëse aktivizohet 'template' dhe 'title' opsionet do të dezinfektohen. Shihni seksionin e dezinfektuesit në dokumentacionin tonë JavaScript . |
allowList |
Objekt | Vlera e paracaktuar | Objekti që përmban atribute dhe etiketa të lejuara |
sanitizeFn |
null | funksionin | null |
Këtu mund të siguroni funksionin tuaj të dezinfektimit. Kjo mund të jetë e dobishme nëse preferoni të përdorni një bibliotekë të dedikuar për të kryer dezinfektim. |
offset |
grup | varg | funksionin | [0, 0] |
Kompensimi i këshillës së veglave në lidhje me objektivin e tij. Ju mund të kaloni një varg në atributet e të dhënave me vlera të ndara me presje si: Kur një funksion përdoret për të përcaktuar kompensimin, ai thirret me një objekt që përmban vendosjen e popper-it, referencën dhe rektat e popper-it si argumentin e tij të parë. Nyja DOM e elementit nxitës kalohet si argumenti i dytë. Funksioni duhet të kthejë një grup me dy numra: . Për më shumë informacion referojuni dokumenteve të kompensimit të Popper-it . |
popperConfig |
null | objekt | funksionin | null |
Për të ndryshuar konfigurimin e paracaktuar të Popper të Bootstrap, shihni konfigurimin e Popper . Kur një funksion përdoret për të krijuar konfigurimin Popper, thirret me një objekt që përmban konfigurimin e paracaktuar të Popper të Bootstrap. Ju ndihmon të përdorni dhe bashkoni parazgjedhjen me konfigurimin tuaj. Funksioni duhet të kthejë një objekt konfigurimi për Popper. |
Atributet e të dhënave për këshilla individuale të veglave
Opsionet për këshilla të veglave individuale mund të specifikohen në mënyrë alternative nëpërmjet përdorimit të atributeve të të dhënave, siç shpjegohet më sipër.
Përdorimi i funksionit mepopperConfig
var tooltip = new bootstrap.Tooltip(element, {
popperConfig: function (defaultBsPopperConfig) {
// var newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
Metodat
Metodat dhe tranzicionet asinkrone
Të gjitha metodat API janë asinkrone dhe fillojnë një tranzicion . Ata kthehen te thirrësi sapo të fillojë tranzicioni, por para se të përfundojë . Përveç kësaj, një thirrje metodë në një komponent në tranzicion do të injorohet .
Shikoni dokumentacionin tonë JavaScript për më shumë informacion .
shfaqje
Zbulon udhëzuesin e një elementi. Kthehet te thirrësi përpara se këshilla e veglave të shfaqet (dmth. përpara se të shown.bs.tooltip
ndodhë ngjarja). Kjo konsiderohet si një aktivizim "manual" i këshillës së veglave. Këshillat e veglave me tituj me gjatësi zero nuk shfaqen kurrë.
tooltip.show()
fshehin
Fsheh udhëzuesin e një elementi. Kthehet te thirrësi përpara se këshilla e veglave të jetë fshehur (dmth. përpara se të hidden.bs.tooltip
ndodhë ngjarja). Kjo konsiderohet si një aktivizim "manual" i këshillës së veglave.
tooltip.hide()
ndërroj
Ndryshon udhëzuesin e një elementi. Kthehet te thirrësi përpara se këshilla e veglave të jetë shfaqur ose fshehur (dmth. përpara se të ndodhë ngjarja shown.bs.tooltip
ose ). hidden.bs.tooltip
Kjo konsiderohet si një aktivizim "manual" i këshillës së veglave.
tooltip.toggle()
disponoj
Fsheh dhe shkatërron udhëzuesin e një elementi (Heq të dhënat e ruajtura në elementin DOM). Këshillat e veglave që përdorin delegimin (të cilat krijohen duke përdorur opsionin selector
) nuk mund të shkatërrohen individualisht në elementët e aktivizimit pasardhës.
tooltip.dispose()
mundësojnë
I jep këshillës së një elementi aftësinë për t'u shfaqur. Këshillat e veglave janë aktivizuar si parazgjedhje.
tooltip.enable()
çaktivizoni
Heq aftësinë për të shfaqur këshillën e një elementi. Këshilla e veglave do të mund të shfaqet vetëm nëse riaktivizohet.
tooltip.disable()
aktivizuar
Ndryshon aftësinë që këshilla e veglave të një elementi të shfaqet ose të fshihet.
tooltip.toggleEnabled()
përditësimi
Përditëson pozicionin e këshillës së veglave të një elementi.
tooltip.update()
getInstance
Metoda statike e cila ju lejon të merrni shembullin e këshillës së veglave të lidhur me një element DOM
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance
getOrCreateInstance
Metoda statike që ju lejon të merrni shembullin e këshillës së veglave të lidhur me një element DOM, ose të krijoni një të ri në rast se nuk ishte inicializuar
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getOrCreateInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance
Ngjarjet
Lloji i ngjarjes | Përshkrim |
---|---|
show.bs.tooltip |
Kjo ngjarje ndizet menjëherë kur show thirret metoda e shembullit. |
shown.bs.tooltip |
Kjo ngjarje aktivizohet kur këshilla e veglave është bërë e dukshme për përdoruesin (do të presë që kalimet CSS të përfundojnë). |
hide.bs.tooltip |
Kjo ngjarje aktivizohet menjëherë kur hide thirret metoda e shembullit. |
hidden.bs.tooltip |
Kjo ngjarje aktivizohet kur këshilla e veglave ka përfunduar së fshehuri nga përdoruesi (do të presë që të plotësohen tranzicionet CSS). |
inserted.bs.tooltip |
Kjo ngjarje aktivizohet pas show.bs.tooltip ngjarjes kur shablloni i këshillës së veglave është shtuar në DOM. |
var myTooltipEl = document.getElementById('myTooltip')
var tooltip = new bootstrap.Tooltip(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', function () {
// do something...
})
tooltip.hide()