Popisky
Dokumentace a příklady pro přidávání vlastních tipů nástrojů Bootstrap s CSS a JavaScript pomocí CSS3 pro animace a datové atributy pro místní úložiště titulků.
Přehled
Co 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.js
který obsahuje Popper! - Pokud vytváříte náš JavaScript ze zdroje, vyžaduje
util.js
. - 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
.disabled
nebodisabled
musí 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.
prefers-reduced-motion
dotazu 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-toggle
atributu:
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
Příklady
Umístěním kurzoru 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.
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top">
Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="right" title="Tooltip on right">
Tooltip on right
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">
Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-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-toggle="tooltip" data-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
Tooltip with HTML
</button>
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:
$('#example').tooltip(options)
Přetečení auto
ascroll
Umístění popisku se pokusí automaticky změnit, když má nadřazený kontejner overflow: auto
nebo se mu overflow: scroll
lí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 boundary
volbu na jinou než výchozí hodnotu, 'scrollParent'
například 'window'
:
$('#example').tooltip({ boundary: 'window' })
Označení
Požadované označení pro popis je pouze data
atribut a title
na prvku HTML chcete mít popis. Vygenerované označení popisku je poměrně jednoduché, i když vyžaduje pozici (ve výchozím nastavení top
je 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 hover
to, ž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-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="arrow"></div>
<div class="tooltip-inner">
Some tooltip text!
</div>
</div>
Zakázané prvky
Prvky s disabled
atributem 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>
, v ideálním případě nastavit tak, aby bylo možné zaměřit se na klávesnici pomocí tabindex="0"
, a přepsat pointer-events
prvek na zakázaném prvku.
<span class="d-inline-block" tabindex="0" data-toggle="tooltip" title="Disabled tooltip">
<button class="btn btn-primary" style="pointer-events: none;" 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-
, jako v data-animation=""
.
sanitize
,
sanitizeFn
a
whiteList
dodat pomocí datových atributů.
název | Typ | Výchozí | Popis |
---|---|---|---|
animace | booleovský | skutečný | Použijte přechod zeslabování CSS na popisek |
kontejner | řetězec | prvek | Nepravdivé | Nepravdivé | Připojí popisek ke konkrétnímu prvku. Příklad: |
zpoždění | čí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: |
html | booleovský | Nepravdivé | Povolit HTML v popisku. Pokud je true, značky HTML v popisku Pokud se obáváte útoků XSS, použijte text. |
umístění | řetězec | funkce | 'horní' | Jak umístit nápovědu - auto | nahoru | dole | vlevo | že jo. 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 |
volič | řetězec | Nepravdivé | Nepravdivé | 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.on podpora). Podívejte se na tento a informativní příklad . |
šablona | tětiva | '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>' |
Základní HTML pro použití při vytváření popisku. Popisek
Nejvzdálenější prvek obalu by měl mít |
titul | řetězec | prvek | funkce | '' | Výchozí hodnota názvu, pokud Pokud je zadána funkce, bude volána se svou |
spoušť | tětiva | 'zaostření po najetí myší' | 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.
|
offset | číslo | řetězec | funkce | 0 | Odsazení popisku vzhledem k jeho cíli. Když je funkce použita k určení offsetu, je volána s objektem obsahujícím offset data jako svůj první argument. Funkce musí vrátit objekt se stejnou strukturou. Uzel DOM spouštěcího prvku je předán jako druhý argument. Další informace naleznete v Popperově ofsetové dokumentaci . |
záložní umístění | řetězec | pole | 'flip' | Umožněte určit, jakou pozici bude Popper používat při nouzovém režimu. Další informace najdete v dokumentech Popper's behavior |
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: Můžete také předat funkci, která by měla vrátit jeden řetězec obsahující další názvy tříd. |
hranice | řetězec | živel | 'scrollParent' | Hranice omezení přetečení popisku. Přijímá hodnoty 'viewport' , 'window' , 'scrollParent' nebo odkaz HTMLElement (pouze JavaScript). Další informace naleznete v Popperových dokumentech preventOverflow . |
dezinfikovat | booleovský | skutečný | 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 . |
whiteList | objekt | Výchozí hodnota | Objekt, který obsahuje povolené atributy a značky |
sanitizeFn | null | funkce | nula | 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. |
popperConfig | null | objekt | nula | Chcete-li změnit výchozí konfiguraci Popperu Bootstrapu, viz Konfigurace Popperu |
Atributy dat pro jednotlivé popisky
Volby pro jednotlivé popisky lze alternativně specifikovat pomocí atributů dat, jak je vysvětleno výše.
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 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 .
$().tooltip(options)
Připojí obslužný program popisku ke kolekci prvků.
.tooltip('show')
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.tooltip
události). Toto je považováno za „ruční“ spuštění popisku. Popisky s názvy nulové délky se nikdy nezobrazují.
$('#element').tooltip('show')
.tooltip('hide')
Skryje popisek prvku. Vrátí se k volajícímu dříve, než byl popis nástroje skutečně skryt (tj. než dojde k hidden.bs.tooltip
události). Toto je považováno za „ruční“ spuštění popisku.
$('#element').tooltip('hide')
.tooltip('toggle')
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.tooltip
nebo ). hidden.bs.tooltip
Toto je považováno za „ruční“ spuštění popisku.
$('#element').tooltip('toggle')
.tooltip('dispose')
Skryje a zničí popisek prvku. 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.
$('#element').tooltip('dispose')
.tooltip('enable')
Umožňuje zobrazení popisku prvku. Popisky jsou ve výchozím nastavení povoleny.
$('#element').tooltip('enable')
.tooltip('disable')
Odebere možnost zobrazení popisku prvku. Popisek bude možné zobrazit pouze v případě, že bude znovu povolen.
$('#element').tooltip('disable')
.tooltip('toggleEnabled')
Přepíná možnost zobrazení nebo skrytí popisku prvku.
$('#element').tooltip('toggleEnabled')
.tooltip('update')
Aktualizuje polohu popisku prvku.
$('#element').tooltip('update')
Události
Typ události | Popis |
---|---|
zobrazit.bs.popisek | Tato událost se spustí okamžitě při show volání metody instance. |
zobrazený.bs.popisek | 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 hide zavolání metody instance. |
skrytý.bs.popisek | Tato událost se spustí, když skončí skrytí popisku před uživatelem (bude čekat na dokončení přechodů CSS). |
vložená.bs.tooltip | Tato událost se spustí po show.bs.tooltip události, kdy byla šablona popisku přidána do modelu DOM. |
$('#myTooltip').on('hidden.bs.tooltip', function () {
// do something...
})