Ugrás a fő tartalomhoz Ugrás a dokumentumok navigációjához
in English

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.jsparancsot, 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.
  • .disabledAz elemekhez vagy elemekhez tartozó eszköztippeket a disabledburkoló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.
Alapértelmezés szerint ez a komponens a beépített tartalom-fertőtlenítőt használja, amely eltávolítja a kifejezetten nem engedélyezett HTML-elemeket. További részletekért lásd a fertőtlenítő részt JavaScript-dokumentációnkban .
Ennek az összetevőnek az animációs hatása a médialekérdezéstől függ 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-toggleAz 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: autovagy overflow: scrolltetszik .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 boundarybeá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 dataattribútum, és titleazon 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 topszerint 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 hoveraz 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 disabledattribú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".

Vegye figyelembe, hogy biztonsági okokból a sanitize, sanitizeFn, és allowListopció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: container: 'body'. Ez az opció különösen hasznos, mivel lehetővé teszi az eszköztipp elhelyezését a dokumentum folyamában az indítóelem közelében - ami megakadályozza, hogy az eszköztipp az ablak átméretezése során lebegjen az indítóelemtől.

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ő:delay: { "show": 500, "hide": 100 }

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 titlemegjelennek az elemleírásban. Ha hamis, a innerTexttulajdonság a tartalom DOM-ba való beillesztésére szolgál.

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.
Ha automeg van adva, akkor dinamikusan átirányítja az eszköztippet.

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 thiskontextus az eszköztipp példányra van beállítva.

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.ontá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 titlerendszer befecskendezi a .tooltip-inner.

.tooltip-arrowaz eszköztipp nyila lesz.

A legkülső burkolóelem .tooltiposztályának és role="tooltip".

title húr | elem | funkció ''

Az alapértelmezett címérték, ha titleaz attribútum nincs jelen.

Ha adott egy függvény, akkor a program úgy hívja meg, hogy a thishivatkozása arra az elemre van beállítva, amelyhez az eszköztipp kapcsolódik.

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.

'manual'azt jelzi, hogy az eszköztipp programozottan aktiválódik a .show(), .hide()és .toggle()metódusokkal; ez az érték nem kombinálható más triggerrel.

'hover'önmagában olyan eszköztippeket eredményez, amelyek nem indíthatók el a billentyűzeten keresztül, és csak akkor használhatók, ha vannak alternatív módszerek ugyanazon információk továbbítására a billentyűzetet használók számára.

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: 'class-1 class-2'.

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:data-bs-offset="10,20"

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: .[skidding, distance]

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.tooltipesemé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.tooltipesemé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.tooltipvagy hidden.bs.tooltipesemé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 selectorbeá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 lekérését egy DOM-elemhez, 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 showpé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 hidepé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.tooltipesemé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()