Eszköztippek
Dokumentáció és példák egyéni Bootstrap eszköztippek hozzáadásához CSS-sel és JavaScripttel a CSS3 használatával animációkhoz és data-bs-attribútumokhoz a helyi címtároláshoz.
Áttekintés
Tudnivalók az eszköztipp-bővítmény használatakor:
- Az eszköztippek a harmadik fél Popper könyvtárára támaszkodnak a pozicionáláshoz. Az eszköztippek működéséhez a popper.min.js fájlt a bootstrap.js elé vagy a
bootstrap.bundle.min.js
/bootstrap.bundle.js
parancsot, amely a Poppert tartalmazza! - Az eszköztippeket teljesítmény okokból engedélyezik, ezért Önnek kell inicializálnia őket .
- A nulla hosszúságú címekkel rendelkező eszköztippek soha nem jelennek meg.
- Adja meg
container: 'body'
, hogy elkerülje a megjelenítési problémákat az összetettebb összetevőkben (például beviteli csoportjaink, gombcsoportjaink stb.). - Az eszköztippek aktiválása a rejtett elemeken nem fog működni.
.disabled
Az elemekhez vagy elemekhez tartozó eszköztippeket adisabled
burkolóelemen kell aktiválni.- Ha több sort átívelő hiperhivatkozások váltják ki, az eszköztippek középre kerülnek. Használja
white-space: nowrap;
a<a>
s-én, hogy elkerülje ezt a viselkedést. - Az eszköztippeket el kell rejteni, mielőtt a megfelelő elemeiket eltávolítanák a DOM-ból.
- Az eszköztippek az árnyék-DOM-on belüli elemnek köszönhetően aktiválhatók.
prefers-reduced-motion
. Tekintse
meg akadálymentesítési dokumentációnk csökkentett mozgással foglalkozó részét .
Megvan az egész? Remek, lássuk, hogyan működnek néhány példával.
Példa: Eszköztippek engedélyezése mindenhol
data-bs-toggle
Az oldalon lévő összes eszköztipp inicializálásának egyik módja az lenne, ha attribútumuk alapján választaná ki őket :
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl)
})
Példák
Az eszköztippek megtekintéséhez vigye az egérmutatót az alábbi linkekre:
Helyőrző szöveg néhány soron belüli hivatkozás bemutatásához eszköztippekkel. Ez most csak töltelék, nem gyilkos. Az itt található tartalom csak a valódi szöveg jelenlétét utánozza . És mindezt csak azért, hogy képet kapjon arról, hogyan néznek ki az eszköztippek valós helyzetekben. Remélhetőleg most már láthatta, hogyan működhetnek a gyakorlatban ezek a linkekre vonatkozó eszköztippek , miután saját webhelyén vagy projektjeiben használja őket.
Vigye az egérmutatót az alábbi gombok fölé, hogy megtekinthesse a négy eszköztipp-irányt: felül, jobb, lent és bal. A Bootstrap RTL-ben történő használatakor az irányok tükröződnek.
<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>
És egyéni HTML hozzáadásával:
<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>
SVG-vel:
Sass
Változók
$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;
Használat
Az eszköztipp-bővítmény igény szerint létrehozza a tartalmat és a jelöléseket, és alapértelmezés szerint az eszköztippeket a triggerelem után helyezi el.
Az elemleírás aktiválása JavaScripten keresztül:
var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, options)
Túlcsordulás auto
ésscroll
Az eszköztipp pozíciója megkísérli automatikusan módosítani, ha egy szülőtároló rendelkezik a mi tárolónkkal, overflow: auto
vagy overflow: scroll
tetszik .table-responsive
, de továbbra is megtartja az eredeti elhelyezés pozícióját. A probléma megoldásához állítsa be a boundary
beállítást (az opciót használó flip módosítóhoz popperConfig
) bármely HTMLElement értékre, hogy felülírja az alapértelmezett értéket, 'clippingParents'
például document.body
:
var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, {
boundary: document.body // or document.querySelector('#boundary')
})
Jelölés
Az eszköztipphez szükséges jelölés csak egy data
attribútum, és title
azon a HTML-elemen, amelyen elemleírást szeretne kapni. Az eszköztippek generált jelölése meglehetősen egyszerű, bár megköveteli a pozíciót (alapértelmezés top
szerint a bővítmény állítja be).
Az eszköztippek működőképessé tétele a billentyűzet és a kisegítő technológiák felhasználói számára
Csak olyan HTML-elemekhez adjon eszköztippeket, amelyek hagyományosan billentyűzetre fókuszálhatók és interaktívak (például hivatkozások vagy űrlapvezérlők). Bár tetszőleges HTML-elemek (például <span>
s) fókuszálhatóvá tehetők az tabindex="0"
attribútum hozzáadásával, ez potenciálisan bosszantó és zavaró tabulátorokat ad a nem interaktív elemekhez a billentyűzet-felhasználók számára, és a legtöbb kisegítő technológia jelenleg nem jeleníti meg az eszközleírást ebben a helyzetben. Ezenkívül ne hagyatkozzon kizárólag hover
az elemleírás indítójára, mivel ez lehetetlenné teszi az elemleírások aktiválását a billentyűzetet használók számára.
<!-- 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>
Letiltott elemek
Az disabled
attribútummal rendelkező elemek nem interaktívak, ami azt jelenti, hogy a felhasználók nem fókuszálhatnak rájuk, nem vihetik az egérmutatót rájuk, vagy nem kattinthatnak rájuk, hogy elemleírást (vagy előugró ablakot) indítsanak el. Megkerülő megoldásként az eszköztippet egy burkolóból <div>
vagy <span>
ideális esetben a billentyűzetre fókuszálhatóvá kell tenni a segítségével 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>
Lehetőségek
Az opciók átadhatók adatattribútumokon vagy JavaScripten keresztül. Az adatattribútumokhoz fűzze hozzá az opció nevét a data-bs-
következőhöz: data-bs-animation=""
. Ügyeljen arra, hogy a beállításnév esettípusát camelCase-ről kebab-case-re változtassa, amikor a beállításokat adatattribútumokon keresztül adja át. Például a használata helyett data-bs-customClass="beautifier"
használja a data-bs-custom-class="beautifier"
.
sanitize
,
sanitizeFn
, és
allowList
opciók nem adhatók meg adatattribútumokkal.
Név | típus | Alapértelmezett | Leírás |
---|---|---|---|
animation |
logikai érték | true |
Alkalmazzon CSS áttűnést az eszköztippre |
container |
húr | elem | hamis | false |
Hozzáfűzi az elemleírást egy adott elemhez. Példa: |
delay |
szám | tárgy | 0 |
Az eszköztipp megjelenítésének és elrejtésének késleltetése (ms) – nem vonatkozik kézi indítótípusra Ha megad egy számot, akkor a késleltetés mindkét elrejtésre/megjelenítésre vonatkozik Az objektum szerkezete a következő: |
html |
logikai érték | false |
HTML engedélyezése az elemleírásban. Ha igaz, akkor az elemleírásban található HTML-címkék Használjon szöveget, ha aggódik az XSS-támadások miatt. |
placement |
húr | funkció | 'top' |
Az eszköztipp elhelyezése - auto | top | alsó | balra | jobb. Amikor egy függvényt használunk az elhelyezés meghatározására, akkor az eszköztipp DOM-csomópontja az első argumentum, és a kiváltó elem DOM-csomópontja a második. A |
selector |
húr | hamis | false |
Ha rendelkezésre áll választó, akkor az eszköztipp objektumok delegálásra kerülnek a megadott célokra. A gyakorlatban ezt az eszköztippek alkalmazására használják a dinamikusan hozzáadott DOM-elemekre ( jQuery.on támogatás). Lásd ezt és egy tájékoztató példát . |
template |
húr | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
Az elemleírás létrehozásakor használandó alap HTML. Az eszköztippeket a
A legkülső burkolóelem |
title |
húr | elem | funkció | '' |
Az alapértelmezett címérték, ha Ha adott egy függvény, akkor a program úgy hívja meg, hogy a |
trigger |
húr | 'hover focus' |
Az eszköztipp aktiválása – kattintson a | lebeg | fókusz | kézikönyv. Több triggert is átadhat; szóközzel válassza el őket.
|
fallbackPlacements |
sor | ['top', 'right', 'bottom', 'left'] |
Határozza meg a tartalék elhelyezéseket úgy, hogy megadja az elhelyezések listáját tömbben (előnyös sorrendben). További információkért tekintse meg a Popper viselkedési dokumentumait |
boundary |
húr | elem | 'clippingParents' |
Az eszköztipp túlcsordulási kényszerhatára (csak a Popper-féle preventOverflow módosítóra vonatkozik). Alapértelmezés szerint 'clippingParents' elfogadja a HTMLElement hivatkozást (csak JavaScripten keresztül). További információkért tekintse meg a Popper detectOverflow dokumentumait . |
customClass |
húr | funkció | '' |
Adjon hozzá osztályokat az eszköztipphez, amikor megjelenik. Ne feledje, hogy ezek az osztályok a sablonban megadott bármely osztály mellé kerülnek hozzáadásra. Több osztály hozzáadásához szóközzel válassza el őket: Olyan függvényt is átadhat, amelynek egyetlen karakterláncot kell visszaadnia, amely további osztályneveket tartalmaz. |
sanitize |
logikai érték | true |
Engedélyezze vagy tiltsa le a fertőtlenítést. Ha aktiválva van 'template' , és 'title' az opciók fertőtlenítésre kerülnek. Tekintse meg a fertőtlenítő részt JavaScript dokumentációnkban . |
allowList |
tárgy | Alapértelmezett érték | Objektum, amely engedélyezett attribútumokat és címkéket tartalmaz |
sanitizeFn |
null | funkció | null |
Itt megadhatja saját fertőtlenítő funkcióját. Ez akkor lehet hasznos, ha inkább egy dedikált könyvtárat szeretne használni a fertőtlenítéshez. |
offset |
tömb | húr | funkció | [0, 0] |
Az eszköztipp eltolása a célhoz képest. Az adatattribútumokban átadhat egy karakterláncot vesszővel elválasztott értékekkel, például: Ha egy függvényt használunk az eltolás meghatározására, akkor egy olyan objektummal hívjuk meg, amely első argumentumaként tartalmazza a popper elhelyezést, a hivatkozást és a popper recteket. A kiváltó elem DOM csomópontja második argumentumként kerül átadásra. A függvénynek egy két számmal rendelkező tömböt kell visszaadnia: . További információkért tekintse meg a Popper-féle eltolási dokumentumokat . |
popperConfig |
null | tárgy | funkció | null |
A Bootstrap alapértelmezett Popper-konfigurációjának módosításához lásd a Popper konfigurációját . Ha egy függvényt használunk a Popper-konfiguráció létrehozására, akkor azt egy olyan objektummal hívjuk meg, amely tartalmazza a Bootstrap alapértelmezett Popper-konfigurációját. Segítségével használhatja és egyesítheti az alapértelmezett beállításokat saját konfigurációjával. A függvénynek egy konfigurációs objektumot kell visszaadnia a Popper számára. |
Adatattribútumok az egyes elemleírásokhoz
Az egyes eszköztippek beállításai adatattribútumok használatával is megadhatók, a fentebb leírtak szerint.
A funkció használata apopperConfig
var tooltip = new bootstrap.Tooltip(element, {
popperConfig: function (defaultBsPopperConfig) {
// var newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
Mód
Aszinkron módszerek és átmenetek
Minden API metódus aszinkron , és átmenetet indít . Visszatérnek a hívóhoz, amint az átmenet elkezdődik, de még azelőtt, hogy az véget érne . Ezenkívül a rendszer figyelmen kívül hagyja az átmeneti komponens metódushívásait .
További információért tekintse meg JavaScript dokumentációnkat .
előadás
Megjeleníti egy elem elemleírását. Visszatér a hívóhoz, mielőtt az eszköztipp ténylegesen megjelenne (azaz az shown.bs.tooltip
esemény bekövetkezte előtt). Ez az eszköztipp „kézi” aktiválásának tekinthető. A nulla hosszúságú címekkel rendelkező eszköztippek soha nem jelennek meg.
tooltip.show()
elrejt
Elrejti az elem elemleírását. Visszatér a hívóhoz, mielőtt az eszköztipp ténylegesen el lett volna rejtve (azaz az hidden.bs.tooltip
esemény bekövetkezte előtt). Ez az eszköztipp „kézi” aktiválásának tekinthető.
tooltip.hide()
kapcsolót
Bekapcsolja az elem elemleírását. Visszatér a hívóhoz, mielőtt az eszköztipp ténylegesen megjelent vagy elrejtett volna (azaz a shown.bs.tooltip
vagy hidden.bs.tooltip
esemény bekövetkezte előtt). Ez az eszköztipp „kézi” aktiválásának tekinthető.
tooltip.toggle()
eldob
Elrejti és megsemmisíti az elem elemleírását (Eltávolítja a DOM elemen tárolt adatokat). A delegálást használó eszköztippek (amelyek a selector
beállítással jönnek létre ) nem semmisíthetők meg egyenként a leszármazott triggerelemeken.
tooltip.dispose()
engedélyezze
Lehetőséget ad egy elem elemleírásának megjelenítésére. Az eszköztippek alapértelmezés szerint engedélyezve vannak.
tooltip.enable()
letiltása
Eltávolítja az elem elemleírásának megjelenítési lehetőségét. Az eszköztipp csak akkor jelenik meg, ha újra engedélyezve van.
tooltip.disable()
toggleEnabled
Bekapcsolja az elem elemleírásának megjelenítését vagy elrejtését.
tooltip.toggleEnabled()
frissítés
Frissíti egy elem elemleírásának pozícióját.
tooltip.update()
getInstance
Statikus módszer, amely lehetővé teszi a DOM-elemhez társított eszköztipp-példány lekérését
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance
getOrCreateInstance
Statikus módszer, amely lehetővé teszi az eszköztipp-példány DOM-elemhez társítását, vagy új létrehozását, ha nem inicializálták
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getOrCreateInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance
Események
Esemény típus | Leírás |
---|---|
show.bs.tooltip |
Ez az esemény azonnal aktiválódik a show példánymetódus meghívásakor. |
shown.bs.tooltip |
Ez az esemény akkor aktiválódik, amikor az eszköztipp láthatóvá vált a felhasználó számára (megvárja, amíg a CSS-átmenetek befejeződnek). |
hide.bs.tooltip |
Ez az esemény azonnal elindul, amikor a hide példánymetódus meghívásra került. |
hidden.bs.tooltip |
Ez az esemény akkor aktiválódik, amikor az eszköztipp el lett rejtve a felhasználó elől (megvárja a CSS-átmenetek befejezését). |
inserted.bs.tooltip |
Ez az esemény az show.bs.tooltip esemény után indul el, amikor az eszköztipp-sablont hozzáadták a DOM-hoz. |
var myTooltipEl = document.getElementById('myTooltip')
var tooltip = new bootstrap.Tooltip(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', function () {
// do something...
})
tooltip.hide()