Opisi alata
Dokumentacija i primjeri za dodavanje prilagođenih Bootstrap alatnih opisa s CSS-om i JavaScriptom koristeći CSS3 za animacije i data-bs-atribute za lokalnu pohranu naslova.
Pregled
Stvari koje treba znati kada koristite dodatak s opisom alata:
- Opisi se za pozicioniranje oslanjaju na biblioteku treće strane Popper . Morate uključiti popper.min.js prije bootstrap.js ili koristiti
bootstrap.bundle.min.js
/bootstrap.bundle.js
koji sadrži Popper kako bi opisi alata radili! - Opisi alata su opt-in zbog performansi, tako da ih morate sami pokrenuti .
- Opisi s naslovima nulte duljine nikad se ne prikazuju.
- Navedite
container: 'body'
kako biste izbjegli probleme s generiranjem u složenijim komponentama (poput naših ulaznih grupa, grupa gumba itd.). - Pokretanje opisa alata na skrivenim elementima neće raditi.
- Opisi za elemente
.disabled
ilidisabled
moraju se pokrenuti na elementu omotača. - Kada se pokreću iz hiperveza koje se protežu kroz više redaka, opisi alata bit će centrirani. Koristite
white-space: nowrap;
na svom<a>
s kako biste izbjegli ovakvo ponašanje. - Opisi alata moraju biti skriveni prije nego što se njihovi odgovarajući elementi uklone iz DOM-a.
- Opisi alata mogu se pokrenuti zahvaljujući elementu unutar DOM-a u sjeni.
prefers-reduced-motion
medijskom upitu. Pogledajte odjeljak
smanjenog kretanja u našoj dokumentaciji o pristupačnosti .
Jeste li sve to shvatili? Sjajno, pogledajmo kako rade na nekim primjerima.
Primjer: Omogućite opise posvuda
Jedan od načina da inicijalizirate sve opise alata na stranici bio bi da ih odaberete prema njihovom data-bs-toggle
atributu:
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl)
})
Primjeri
Zadržite pokazivač iznad donjih veza da biste vidjeli savjete:
Tekst rezerviranog mjesta za prikaz nekih umetnutih veza s opisima alata. Ovo je sada samo punilo, a ne ubojica. Sadržaj postavljen ovdje samo da oponaša prisutnost pravog teksta . I sve to samo da biste dobili ideju o tome kako bi opisi alata izgledali kada bi se koristili u stvarnim situacijama. Nadamo se da ste sada vidjeli kako ovi opisi alata na vezama mogu funkcionirati u praksi, nakon što ih upotrijebite na vlastitom web- mjestu ili projektu.
Zadržite pokazivač miša iznad gumba u nastavku da biste vidjeli četiri smjera opisa alata: gore, desno, dolje i lijevo. Upute se preslikavaju kada koristite Bootstrap u RTL-u.
<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>
I s dodanim prilagođenim HTML-om:
<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>
Uz SVG:
Sass
Varijable
$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;
Korištenje
Dodatak za opis alata generira sadržaj i oznake na zahtjev, a prema zadanim postavkama postavlja opise alata nakon elementa pokretača.
Pokreni opis alata putem JavaScripta:
var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, options)
Preljev auto
iscroll
Položaj opisa alata pokušava se automatski promijeniti kada nadređeni spremnik ima overflow: auto
ili overflow: scroll
poput našeg .table-responsive
, ali i dalje zadržava izvorni položaj položaja. Da biste to riješili, postavite boundary
opciju (za modifikator okretanja koji koristi popperConfig
opciju) na bilo koji HTMLElement da nadjačate zadanu vrijednost, 'clippingParents'
kao što je document.body
:
var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, {
boundary: document.body // or document.querySelector('#boundary')
})
Markup
Potrebna oznaka za opis alata samo je data
atribut, a title
na HTML elementu želite imati opis alata. Generirano označavanje opisa alata je prilično jednostavno, iako zahtijeva poziciju (prema zadanim postavkama, postavljena top
od strane dodatka).
Učinite da opisi alata rade za korisnike tipkovnice i pomoćne tehnologije
Trebali biste samo dodavati opise alata HTML elementima koji se tradicionalno mogu fokusirati tipkovnicom i koji su interaktivni (kao što su veze ili kontrole obrazaca). Iako proizvoljni HTML elementi (kao što <span>
je s) mogu biti fokusirani dodavanjem tabindex="0"
atributa, to će dodati potencijalno dosadne i zbunjujuće tabulatore na neinteraktivnim elementima za korisnike tipkovnice, a većina pomoćnih tehnologija trenutno ne najavljuje alatni opis u ovoj situaciji. Osim toga, nemojte se oslanjati samo na hover
njega kao na okidač za svoj opis alata, jer će to učiniti vaše opise alata nemogućim za pokretanje za korisnike tipkovnice.
<!-- 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>
Onemogućeni elementi
Elementi s disabled
atributom nisu interaktivni, što znači da ih korisnici ne mogu fokusirati, lebdjeti pokazivačem ili kliknuti kako bi pokrenuli opis alata (ili skočni prozor). Kao zaobilazno rješenje, htjet ćete pokrenuti opis alata iz omotača <div>
ili <span>
, idealno napravljenog za fokusiranje na tipkovnici, pomoću 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>
Mogućnosti
Opcije se mogu proslijediti putem atributa podataka ili JavaScripta. Za atribute podataka dodajte naziv opcije u data-bs-
, kao u data-bs-animation=""
. Obavezno promijenite vrstu slučaja naziva opcije iz camelCase u kebab-case kada prosljeđujete opcije putem atributa podataka. Na primjer, umjesto da koristite data-bs-customClass="beautifier"
, koristite data-bs-custom-class="beautifier"
.
sanitize
,
sanitizeFn
, i
allowList
ne mogu isporučiti pomoću atributa podataka.
Ime | Tip | Zadano | Opis |
---|---|---|---|
animation |
Booleov | true |
Primijenite CSS fade prijelaz na tooltip |
container |
niz | element | lažno | false |
Dodaje opis alata određenom elementu. Primjer: |
delay |
broj | objekt | 0 |
Odgoda prikazivanja i skrivanja opisa alata (ms) - ne odnosi se na vrstu ručnog okidača Ako je naveden broj, odgoda se primjenjuje na skrivanje/prikazivanje Struktura objekta je: |
html |
Booleov | false |
Dopusti HTML u opisu alata. Ako je istina, HTML oznake u opisu alata Upotrijebite tekst ako ste zabrinuti zbog XSS napada. |
placement |
niz | funkcija | 'top' |
Kako postaviti opis alata - automatski | vrh | dno | lijevo | pravo. Kada se funkcija koristi za određivanje položaja, poziva se s DOM čvorom alata kao prvim argumentom i DOM čvorom pokretačkog elementa kao drugim. Kontekst |
selector |
niz | lažno | false |
Ako je selektor naveden, objekti opisa alata bit će delegirani navedenim ciljevima. U praksi se ovo također koristi za primjenu opisa alata na dinamički dodane DOM elemente ( jQuery.on podrška). Pogledajte ovo i informativan primjer . |
template |
niz | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
Osnovni HTML za korištenje pri izradi opisa alata. Opis alata
Najudaljeniji element omotača trebao bi imati |
title |
niz | element | funkcija | '' |
Zadana vrijednost naslova ako Ako je dana funkcija, bit će pozvana s |
trigger |
niz | 'hover focus' |
Kako se aktivira opis alata - kliknite | lebdjeti | fokus | priručnik. Možete proći više okidača; odvojite ih razmakom.
|
fallbackPlacements |
niz | ['top', 'right', 'bottom', 'left'] |
Definirajte zamjenske položaje pružanjem popisa položaja u nizu (redoslijedom preferencija). Za više informacija pogledajte Popperovu dokumentaciju o ponašanju |
boundary |
niz | element | 'clippingParents' |
Granica ograničenja prelijevanja opisa alata (odnosi se samo na Popperov modifikator za sprečavanje preljeva). Prema zadanim postavkama 'clippingParents' može prihvatiti HTMLElement referencu (samo putem JavaScripta). Za više informacija pogledajte Popper's detectOverflow dokumente . |
customClass |
niz | funkcija | '' |
Dodajte klase u opis alata kada se prikaže. Imajte na umu da će ove klase biti dodane uz sve klase navedene u predlošku. Za dodavanje više klasa, odvojite ih razmacima: Također možete proslijediti funkciju koja bi trebala vratiti jedan niz koji sadrži dodatna imena klasa. |
sanitize |
Booleov | true |
Omogućite ili onemogućite dezinfekciju. Ako je aktivirano 'template' i 'title' opcije će biti očišćene. Pogledajte odjeljak sanitizera u našoj JavaScript dokumentaciji . |
allowList |
objekt | Zadana vrijednost | Objekt koji sadrži dopuštene atribute i oznake |
sanitizeFn |
nula | funkcija | null |
Ovdje možete ponuditi vlastitu funkciju dezinfekcije. Ovo može biti korisno ako radije koristite namjensku knjižnicu za izvođenje dezinfekcije. |
offset |
niz | niz | funkcija | [0, 0] |
Pomak opisa alata u odnosu na cilj. Možete proslijediti niz u atributima podataka s vrijednostima odvojenim zarezima kao što su: Kada se funkcija koristi za određivanje pomaka, ona se poziva s objektom koji sadrži popper položaj, referencu i popper rects kao prvi argument. DOM čvor pokretačkog elementa prosljeđuje se kao drugi argument. Funkcija mora vratiti niz s dva broja: . Za više informacija pogledajte Popperovu offset dokumentaciju . |
popperConfig |
nula | objekt | funkcija | null |
Za promjenu Bootstrapove zadane Popper konfiguracije, pogledajte Popperovu konfiguraciju . Kada se funkcija koristi za stvaranje Popper konfiguracije, poziva se s objektom koji sadrži Bootstrapovu zadanu Popper konfiguraciju. Pomaže vam koristiti i spojiti zadane postavke s vlastitom konfiguracijom. Funkcija mora vratiti konfiguracijski objekt za Popper. |
Atributi podataka za pojedinačne opise alata
Opcije za pojedinačne opise alata mogu se alternativno odrediti korištenjem atributa podataka, kao što je gore objašnjeno.
Korištenje funkcije sapopperConfig
var tooltip = new bootstrap.Tooltip(element, {
popperConfig: function (defaultBsPopperConfig) {
// var newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
Metode
Asinkrone metode i prijelazi
Sve API metode su asinkrone i pokreću prijelaz . Vraćaju se pozivatelju čim prijelaz započne, ali prije nego što završi . Osim toga, poziv metode na prijelaznoj komponenti bit će zanemaren .
Pogledajte našu JavaScript dokumentaciju za više informacija .
pokazati
Otkriva opis elementa. Vraća se pozivatelju prije nego što se alatni opis stvarno prikaže (tj. prije nego što se shown.bs.tooltip
događaj dogodi). Ovo se smatra "ručnim" pokretanjem opisa alata. Opisi s naslovima nulte duljine nikad se ne prikazuju.
tooltip.show()
sakriti
Skriva opis elementa. Vraća se pozivatelju prije nego što je opis alata zapravo skriven (tj. prije nego što se hidden.bs.tooltip
događaj dogodi). Ovo se smatra "ručnim" pokretanjem opisa alata.
tooltip.hide()
prebaciti
Prebacuje opis elementa. Vraća se pozivatelju prije nego što se alatni opis stvarno prikaže ili sakrije (tj. prije nego što se dogodi događaj shown.bs.tooltip
ili ). hidden.bs.tooltip
Ovo se smatra "ručnim" pokretanjem opisa alata.
tooltip.toggle()
raspolagati
Skriva i uništava opis elementa (uklanja pohranjene podatke na DOM elementu). Opisi alata koji koriste delegiranje (koji se stvaraju pomoću opcije selector
) ne mogu se pojedinačno uništiti na elementima okidača potomaka.
tooltip.dispose()
omogućiti
Daje mogućnost prikazivanja opisa elementa. Opisi su prema zadanim postavkama omogućeni.
tooltip.enable()
onemogućiti
Uklanja mogućnost prikazivanja opisa elementa. Opis alata moći će se prikazati samo ako je ponovno omogućen.
tooltip.disable()
prebaciOmogućeno
Isključuje mogućnost prikazivanja ili skrivanja opisa elementa.
tooltip.toggleEnabled()
Ažuriraj
Ažurira položaj opisa elementa.
tooltip.update()
getInstance
Statička metoda koja vam omogućuje dobivanje instance opisa alata povezane s DOM elementom
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance
getOrCreateInstance
Statička metoda koja vam omogućuje dobivanje instance opisa alata povezane s DOM elementom ili stvaranje novog u slučaju da nije inicijaliziran
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getOrCreateInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance
Događaji
Vrsta događaja | Opis |
---|---|
show.bs.tooltip |
Ovaj događaj aktivira se odmah kada show se pozove metoda instance. |
shown.bs.tooltip |
Ovaj se događaj pokreće kada je opis alata vidljiv korisniku (pričekat će se da se CSS prijelazi završe). |
hide.bs.tooltip |
Ovaj se događaj aktivira odmah nakon hide pozivanja metode instance. |
hidden.bs.tooltip |
Ovaj se događaj pokreće kada se opis alata više ne skriva od korisnika (pričekat će se da se CSS prijelazi završe). |
inserted.bs.tooltip |
Ovaj se događaj pokreće nakon show.bs.tooltip događaja kada je predložak opisa alata dodan u DOM. |
var myTooltipEl = document.getElementById('myTooltip')
var tooltip = new bootstrap.Tooltip(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', function () {
// do something...
})
tooltip.hide()