Přejít na hlavní obsah Přejít na navigaci v dokumentech
in English

Popisky

Dokumentace a příklady pro přidávání vlastních popisů Bootstrap s CSS a JavaScript pomocí CSS3 pro animace a data-bs-atributy pro místní ukládání titulků.

Přehled

Věci, které byste měli vědět při používání pluginu tooltip:

  • Popisky se při určování polohy spoléhají na knihovnu Popper třetí strany . Aby popisky fungovaly, musíte před bootstrap.js vložit popper.min.js nebo použít bootstrap.bundle.min.js/ bootstrap.bundle.jskterý obsahuje Popper!
  • Popisky jsou z důvodu výkonu volitelné, takže je musíte inicializovat sami .
  • Popisky s názvy nulové délky se nikdy nezobrazují.
  • Určete container: 'body', abyste se vyhnuli problémům s vykreslováním ve složitějších komponentách (jako jsou naše vstupní skupiny, skupiny tlačítek atd.).
  • Spouštění popisků u skrytých prvků nebude fungovat.
  • Popisky pro prvky .disablednebo disabledmusí být spuštěny na prvku obálky.
  • Při spuštění z hypertextových odkazů, které zahrnují více řádků, budou popisky nástrojů vycentrovány. Chcete-li se tomuto chování vyhnout, použijte white-space: nowrap;na svém s.<a>
  • Před odstraněním příslušných prvků z modelu DOM musí být popisy nástrojů skryty.
  • Popisky lze spouštět díky prvku uvnitř stínového DOM.
Ve výchozím nastavení tato komponenta používá vestavěný dezinfekční prostředek obsahu, který odstraňuje všechny prvky HTML, které nejsou výslovně povoleny. Další podrobnosti najdete v sekci dezinfekce v naší JavaScriptové dokumentaci .
Efekt animace této komponenty závisí na prefers-reduced-motiondotazu na média. Podívejte se na část s omezeným pohybem v naší dokumentaci přístupnosti .

Máš to všechno? Skvělé, podívejme se, jak fungují s některými příklady.

Příklad: Povolit popisky všude

Jedním ze způsobů, jak inicializovat všechny popisky na stránce, je vybrat je podle jejich data-bs-toggleatributu:

var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
  return new bootstrap.Tooltip(tooltipTriggerEl)
})

Příklady

Umístěním ukazatele myši na níže uvedené odkazy zobrazíte popisky:

Zástupný text pro demonstraci některých vkládaných odkazů s popisky. Tohle je teď jen výplň, žádný zabiják. Obsah zde umístěný jen proto, aby napodobil přítomnost skutečného textu . A to vše jen proto, abyste měli představu, jak by popisky vypadaly při použití v reálných situacích. Doufejme, že jste nyní viděli, jak mohou tyto tipy pro odkazy fungovat v praxi, jakmile je použijete na svém vlastním webu nebo projektu.

Umístěním ukazatele myši na níže uvedená tlačítka zobrazíte čtyři směry popisků: nahoře, vpravo, dole a vlevo. Pokyny jsou zrcadleny při použití Bootstrapu v 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>

A s přidaným vlastním HTML:

<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>

S SVG:

Sass

Proměnné

$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;

Používání

Plugin tooltip generuje obsah a označení na vyžádání a ve výchozím nastavení umísťuje popisky za jejich spouštěcí prvek.

Spusťte popis pomocí JavaScriptu:

var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, options)
Přetečení autoascroll

Umístění popisku se pokusí automaticky změnit, když má nadřazený kontejneroverflow: auto nebo se mu overflow: scrolllíbí naše .table-responsive, ale stále zachovává původní umístění umístění. Chcete-li to vyřešit, nastavte boundaryvolbu (pro modifikátor flip používající tuto popperConfigvolbu) na libovolný HTMLElement, abyste přepsali výchozí hodnotu, 'clippingParents'například document.body:

var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, {
  boundary: document.body // or document.querySelector('#boundary')
})

Označení

Požadované označení pro popis je pouze dataatribut a titlena prvku HTML chcete mít popis. Vygenerované označení popisku je poměrně jednoduché, i když vyžaduje pozici (ve výchozím nastavení topje pluginem nastavena na hodnotu).

Jak zajistit, aby popisky fungovaly pro uživatele klávesnice a asistenčních technologií

Popisky byste měli přidávat pouze k prvkům HTML, které jsou tradičně zaměřeny na klávesnici a jsou interaktivní (jako jsou odkazy nebo ovládací prvky formuláře). Ačkoli lze libovolné prvky HTML (například <span>s) upravit tak, aby bylo možné zaostřit přidáním tabindex="0"atributu, přidá to uživatelům klávesnice potenciálně otravné a matoucí zarážky tabulátoru na neinteraktivních prvcích a většina asistenčních technologií v současné době v této situaci neoznamuje nápovědu. Kromě toho se nespoléhejte pouze na hoverto, že spouštěcí nápověda bude spouštět, protože to znemožní spuštění vašich bublin pro uživatele klávesnice.

<!-- 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>

Zakázané prvky

Prvky s disabledatributem nejsou interaktivní, což znamená, že uživatelé se na ně nemohou zaměřit, umístit na ně ukazatel myši nebo na ně kliknout, aby vyvolali nápovědu (nebo vyskakovací okno). Jako náhradní řešení budete chtít spouštět nápovědu z obálky <div>nebo <span>, ideálně tak, aby bylo možné zaostřit na klávesnici pomocí 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>

Možnosti

Možnosti lze předávat prostřednictvím atributů dat nebo JavaScriptu. U atributů dat připojte název volby k data-bs-, jako v data-bs-animation="". Ujistěte se, že jste změnili typ případu názvu možnosti z camelCase na kebab-case při předávání možností prostřednictvím datových atributů. Například místo použití data-bs-customClass="beautifier"použijte data-bs-custom-class="beautifier".

Všimněte si, že z bezpečnostních důvodů nelze volby sanitize, sanitizeFn, a allowListzadat pomocí datových atributů.
název Typ Výchozí Popis
animation booleovský true Použijte přechod zeslabování CSS na popisek
container řetězec | prvek | Nepravdivé false

Připojí popisek ke konkrétnímu prvku. Příklad: container: 'body'. Tato možnost je užitečná zejména v tom, že vám umožňuje umístit bublinovou nápovědu do toku dokumentu poblíž spouštěcího prvku – což zabrání tomu, aby se nápověda při změně velikosti okna vzdálila od spouštěcího prvku.

delay číslo | objekt 0

Zpoždění zobrazení a skrytí popisku (ms) – nevztahuje se na typ ručního spouštění

Pokud je zadáno číslo, použije se prodleva pro skrytí/zobrazení

Struktura objektu je:delay: { "show": 500, "hide": 100 }

html booleovský false

Povolit HTML v popisku.

Pokud je true, značky HTML v popisku titlese vykreslí v popisku. Pokud je false, innerTextvlastnost se použije k vložení obsahu do DOM.

Pokud se obáváte útoků XSS, použijte text.

placement řetězec | funkce 'top'

Jak umístit nápovědu - auto | nahoru | dole | vlevo | že jo.
Když autoje zadáno, dynamicky změní orientaci popisku.

Když je k určení umístění použita funkce, je volána s nápovědou uzel DOM jako prvním argumentem a spouštěcím prvkem uzlem DOM jako druhým. Kontext thisje nastaven na instanci popisku.

selector řetězec | Nepravdivé false Pokud je k dispozici selektor, objekty popisků budou delegovány na zadané cíle. V praxi se to používá také k aplikaci popisků na dynamicky přidávané prvky DOM ( jQuery.onpodpora). Podívejte se na tento a informativní příklad .
template tětiva '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'

Základní HTML pro použití při vytváření popisku.

Popisek titlebude vložen do souboru .tooltip-inner.

.tooltip-arrowse stane šipkou popisku.

Nejvzdálenější prvek obalu by měl mít .tooltiptřídy a role="tooltip".

title řetězec | prvek | funkce ''

Výchozí hodnota názvu, pokud titleatribut není přítomen.

Pokud je zadána funkce, bude volána se svou thisreferenční sadou na prvek, ke kterému je připojena nápověda.

trigger tětiva 'hover focus'

Jak se spouští nápověda - klikněte | vznášet se | zaměření | manuál. Můžete předat více spouštěčů; oddělte je mezerou.

'manual'označuje, že popis bude spuštěn programově pomocí metod .show(), .hide()a ; .toggle()tuto hodnotu nelze kombinovat s žádným jiným spouštěčem.

'hover'sám o sobě povede k nápovědám, které nelze spouštět pomocí klávesnice, a měly by být používány pouze v případě, že existují alternativní metody pro předávání stejných informací uživatelům klávesnice.

fallbackPlacements pole ['top', 'right', 'bottom', 'left'] Definujte záložní umístění poskytnutím seznamu umístění v poli (v preferovaném pořadí). Další informace najdete v dokumentech Popper's behavior
boundary řetězec | živel 'clippingParents' Hranice omezení přetečení popisku (platí pouze pro Popperův modifikátor preventOverflow). Ve výchozím nastavení je 'clippingParents'a může přijímat referenci HTMLElement (pouze prostřednictvím JavaScriptu). Další informace naleznete v dokumentech DetectOverflow společnosti Popper .
customClass řetězec | funkce ''

Přidejte třídy do popisku, když se zobrazí. Všimněte si, že tyto třídy budou přidány k jakýmkoli třídám uvedeným v šabloně. Chcete-li přidat více tříd, oddělte je mezerami: 'class-1 class-2'.

Můžete také předat funkci, která by měla vrátit jeden řetězec obsahující další názvy tříd.

sanitize booleovský true Povolit nebo zakázat dezinfekci. Pokud je aktivován 'template'a 'title'možnosti budou dezinfikovány. Podívejte se na sekci dezinfekce v naší dokumentaci JavaScript .
allowList objekt Výchozí hodnota Objekt, který obsahuje povolené atributy a značky
sanitizeFn null | funkce null Zde si můžete dodat vlastní funkci dezinfekce. To může být užitečné, pokud dáváte přednost použití vyhrazené knihovny k provádění sanitace.
offset pole | řetězec | funkce [0, 0]

Odsazení popisku vzhledem k jeho cíli. V atributech dat můžete předat řetězec s hodnotami oddělenými čárkami, jako jsou:data-bs-offset="10,20"

Když je funkce použita k určení offsetu, je volána s objektem obsahujícím umístění popper, odkaz a popper rects jako svůj první argument. Uzel DOM spouštěcího prvku je předán jako druhý argument. Funkce musí vrátit pole se dvěma čísly: .[skidding, distance]

Další informace naleznete v Popperově ofsetové dokumentaci .

popperConfig null | objekt | funkce null

Chcete-li změnit výchozí konfiguraci Popperu Bootstrapu, viz Konfigurace Popperu .

Když je funkce použita k vytvoření konfigurace Popper, je volána s objektem, který obsahuje výchozí konfiguraci Popperu Bootstrapu. Pomůže vám použít a sloučit výchozí nastavení s vaší vlastní konfigurací. Funkce musí vrátit konfigurační objekt pro Popper.

Atributy dat pro jednotlivé popisky

Volby pro jednotlivé popisky lze alternativně specifikovat pomocí atributů dat, jak je vysvětleno výše.

Použití funkce spopperConfig

var tooltip = new bootstrap.Tooltip(element, {
  popperConfig: function (defaultBsPopperConfig) {
    // var newPopperConfig = {...}
    // use defaultBsPopperConfig if needed...
    // return newPopperConfig
  }
})

Metody

Asynchronní metody a přechody

Všechny metody API jsou asynchronní a zahajují přechod . Vrátí se k volajícímu, jakmile je přechod zahájen, ale ještě před jeho ukončením . Kromě toho bude ignorováno volání metody na přechodové komponentě .

Další informace naleznete v naší dokumentaci k JavaScriptu .

ukázat

Zobrazí popisek prvku. Vrátí se k volajícímu dříve, než se nápověda skutečně zobrazila (tj. než dojde k shown.bs.tooltipudálosti). Toto je považováno za „ruční“ spuštění popisku. Popisky s názvy nulové délky se nikdy nezobrazují.

tooltip.show()

skrýt

Skryje popisek prvku. Vrátí se k volajícímu před tím, než byl popisek skutečně skryt (tj. předtím, než dojde k hidden.bs.tooltipudálosti). Toto je považováno za „ruční“ spuštění popisku.

tooltip.hide()

přepnout

Přepíná popisek prvku. Vrátí se k volajícímu dříve, než byl popis nástroje skutečně zobrazen nebo skryt (tj. než dojde k události shown.bs.tooltipnebo ). hidden.bs.tooltipToto je považováno za „ruční“ spuštění popisku.

tooltip.toggle()

zlikvidovat

Skryje a zničí popisek prvku (Odstraní uložená data na prvku DOM). Popisky, které používají delegování (které jsou vytvořeny pomocí volby ) selector, nelze jednotlivě zničit na podřízených spouštěcích prvcích.

tooltip.dispose()

umožnit

Umožňuje zobrazení popisku prvku. Popisky jsou ve výchozím nastavení povoleny.

tooltip.enable()

zakázat

Odebere možnost zobrazení popisku prvku. Popisek bude možné zobrazit pouze v případě, že bude znovu povolen.

tooltip.disable()

toggleEnabled

Přepíná možnost zobrazení nebo skrytí popisku prvku.

tooltip.toggleEnabled()

Aktualizace

Aktualizuje polohu popisku prvku.

tooltip.update()

getInstance

Statická metoda, která umožňuje získat instanci popisku přidruženou k prvku DOM

var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance

getOrCreateInstance

Statická metoda, která vám umožní získat instanci popisku přidruženou k prvku DOM nebo vytvořit novou v případě, že nebyla inicializována

var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getOrCreateInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance

Události

Typ události Popis
show.bs.tooltip Tato událost se spustí okamžitě při showvolání metody instance.
shown.bs.tooltip Tato událost se spustí, když je popis zviditelněn pro uživatele (bude čekat na dokončení přechodů CSS).
hide.bs.tooltip Tato událost se spustí okamžitě po hidezavolání metody instance.
hidden.bs.tooltip Tato událost se spustí, když skončí skrytí popisku před uživatelem (bude čekat na dokončení přechodů CSS).
inserted.bs.tooltip Tato událost se spustí po show.bs.tooltipudálosti, kdy byla šablona popisku přidána do modelu DOM.
var myTooltipEl = document.getElementById('myTooltip')
var tooltip = new bootstrap.Tooltip(myTooltipEl)

myTooltipEl.addEventListener('hidden.bs.tooltip', function () {
  // do something...
})

tooltip.hide()