Podpowiedzi
Dokumentacja i przykłady dodawania niestandardowych podpowiedzi Bootstrap z CSS i JavaScript przy użyciu CSS3 do animacji i atrybutów danych do lokalnego przechowywania tytułów.
Przegląd
Co należy wiedzieć podczas korzystania z wtyczki podpowiedzi:
- Podpowiedzi opierają się na zewnętrznej bibliotece Popper.js do pozycjonowania. Musisz dołączyć popper.min.js przed bootstrap.js lub użyć bootstrap.bundle.min.js/bootstrap.bundle.jsktóry zawiera Popper.js, aby podpowiedzi działały!
- Jeśli budujesz nasz JavaScript ze źródeł, wymagautil.jsto .
- Etykietki narzędzi są dostępne ze względu na wydajność, więc musisz je zainicjować samodzielnie .
- Etykietki narzędzi z tytułami o zerowej długości nigdy nie są wyświetlane.
- Określ container: 'body', aby uniknąć problemów z renderowaniem w bardziej złożonych komponentach (takich jak nasze grupy wejściowe, grupy przycisków itp.).
- Wyzwalanie podpowiedzi na ukrytych elementach nie będzie działać.
- Etykietki narzędzi dla elementów .disabledlubdisabledmuszą być wyzwalane w elemencie opakowania.
- Po uruchomieniu z hiperłączy, które obejmują wiele linii, podpowiedzi zostaną wyśrodkowane. Użyj white-space: nowrap;na swoim<a>s, aby uniknąć tego zachowania.
- Etykietki narzędzi muszą być ukryte, zanim odpowiadające im elementy zostaną usunięte z DOM.
- Podpowiedzi mogą być wyzwalane dzięki elementowi wewnątrz cienia DOM.
Efekt animacji tego komponentu zależy od prefers-reduced-motionzapytania o media. Zobacz zmniejszoną sekcję ruchu w naszej dokumentacji ułatwień dostępu .
Masz to wszystko? Świetnie, zobaczmy, jak działają na kilku przykładach.
Przykład: Włącz podpowiedzi wszędzie
Jednym ze sposobów na zainicjowanie wszystkich podpowiedzi na stronie byłoby wybranie ich według ich data-toggleatrybutów:
$(function () {
  $('[data-toggle="tooltip"]').tooltip()
})Przykłady
Najedź na poniższe linki, aby zobaczyć podpowiedzi:
Obcisłe spodnie następnego poziomu kefija prawdopodobnie o nich nie słyszałeś. Fotobudka broda surowy denim typografia wegańska torba listonoszka stumptown. 8-bitowa amerykańska odzież z komosy ryżowej firmy Mcsweeney firmy Mcsweeney w wersji fixie ma winylowy chambray frotte richardson. Beard Stumptown, swetry rozpinane banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, cztery loko mcsweeney's oczyszczający wegański chambray. Naprawdę ironiczny rzemieślnik , niezależnie od tego , jaka jest kluczowa , scenarzysta od farmy do stołu banksy Austin twitter obsługuje freegan cred surowy denim, wirus kawy jednego pochodzenia.
Najedź kursorem na poniższe przyciski, aby zobaczyć cztery wskazówki podpowiedzi: góra, prawo, dół i lewo.
<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 z dodanym niestandardowym kodem 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>Stosowanie
Wtyczka podpowiedzi generuje treść i znaczniki na żądanie i domyślnie umieszcza podpowiedzi po elemencie wyzwalacza.
Uruchom podpowiedź za pomocą JavaScript:
$('#example').tooltip(options)Przepełnienie autoiscroll
 
      Pozycja etykietki próbuje automatycznie zmienić się, gdy kontener nadrzędny ma overflow: autolub jest overflow: scrollpodobny do naszego .table-responsive, ale nadal zachowuje oryginalne położenie miejsca docelowego. Aby rozwiązać ten problem, ustaw boundaryopcję na wartość inną niż domyślna 'scrollParent', na przykład 'window':
$('#example').tooltip({ boundary: 'window' })Narzut
Wymagane znaczniki podpowiedzi to tylko dataatrybut i titleelement HTML, który chcesz mieć podpowiedź. Wygenerowany znacznik podpowiedzi jest dość prosty, chociaż wymaga pozycji (domyślnie ustawionej topprzez wtyczkę).
Tworzenie podpowiedzi dla użytkowników klawiatury i technologii wspomagających
Etykietki narzędzi należy dodawać tylko do elementów HTML, które tradycyjnie można skoncentrować na klawiaturze i które są interaktywne (takie jak łącza lub kontrolki formularzy). Chociaż <span>można skupić się na dowolnych elementach HTML (takich jak s), dodając tabindex="0"atrybut, doda to potencjalnie denerwujące i mylące tabulatory na nieinteraktywnych elementach dla użytkowników klawiatury. Ponadto większość technologii wspomagających obecnie nie wyświetla podpowiedzi w tej sytuacji.
Ponadto nie należy polegać wyłącznie na hoverwyzwalaczu podpowiedzi, ponieważ uniemożliwi to wyzwolenie podpowiedzi dla użytkowników klawiatury.
<!-- 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>Elementy niepełnosprawne
Elementy z disabledatrybutem nie są interaktywne, co oznacza, że użytkownicy nie mogą się na nich skoncentrować, najechać kursorem ani kliknąć ich, aby wywołać podpowiedź (lub popover). Jako obejście, będziesz chciał wyzwolić podpowiedź z otoki <div>lub <span>, najlepiej, aby można było skoncentrować się na klawiaturze za pomocą tabindex="0", i przesłonić pointer-eventswyłączony element.
<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>Opcje
Opcje można przekazywać za pomocą atrybutów danych lub kodu JavaScript. W przypadku atrybutów danych dołącz nazwę opcji do data-, jak w data-animation="".
| Nazwa | Rodzaj | Domyślna | Opis | 
|---|---|---|---|
| animacja | logiczne | PRAWDA | Zastosuj zanikające przejście CSS do podpowiedzi | 
| pojemnik | ciąg | element | fałszywy | fałszywy | Dołącza podpowiedź do określonego elementu. Przykład:  | 
| opóźnienie | numer | obiekt | 0 | Opóźnienie pokazywania i ukrywania podpowiedzi (ms) – nie dotyczy wyzwalania ręcznego Jeśli podano numer, opóźnienie jest stosowane zarówno do ukrywania, jak i pokazywania Struktura obiektu to: | 
| html | logiczne | fałszywy | Zezwalaj na HTML w podpowiedzi. Jeśli prawda, znaczniki HTML w podpowiedzi  Użyj tekstu, jeśli martwisz się atakami XSS. | 
| umieszczenie | ciąg | funkcjonować | 'Top' | Jak ustawić podpowiedź - auto | góra | dół | lewo | prawo.  Gdy funkcja jest używana do określenia położenia, jest wywoływana z węzłem DOM podpowiedzi jako pierwszym argumentem i węzłem DOM elementu wyzwalającego jako drugim. Kontekst  | 
| selektor | ciąg | fałszywy | fałszywy | Jeśli podano selektor, obiekty etykietek narzędzi zostaną delegowane do określonych celów. W praktyce służy to również do zastosowania podpowiedzi do dynamicznie dodawanych elementów DOM ( jQuery.onobsługa). Zobacz to i przykład informacyjny . | 
| szablon | strunowy | '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>' | Podstawowy kod HTML do użycia podczas tworzenia podpowiedzi. Etykietka  
 Najbardziej zewnętrzny element opakowania powinien mieć  | 
| tytuł | ciąg | element | funkcjonować | '' | Domyślna wartość tytułu, jeśli  Jeśli podana zostanie funkcja, zostanie wywołana z  | 
| cyngiel | strunowy | „skup się na najechaniu” | Jak uruchamia się podpowiedź - kliknij | najedź | skupić | podręcznik. Możesz przekazać wiele wyzwalaczy; oddziel je spacją. 
 
 | 
| zrównoważyć | numer | strunowy | 0 | Przesunięcie podpowiedzi względem celu. Więcej informacji można znaleźć w dokumentacji offsetowej Popper.js . | 
| powrótMiejsce docelowe | ciąg | szyk | 'trzepnięcie' | Zezwalaj na określenie, której pozycji Popper użyje w przypadku powrotu. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją dotyczącą zachowania Popper.js | 
| granica | ciąg | element | 'przewiń Rodzic' | Obwiednia przepełnienia etykiety narzędzi. Akceptuje wartości 'viewport','window','scrollParent'lub odwołania HTMLElement (tylko JavaScript). Aby uzyskać więcej informacji, zapoznaj się z dokumentacją PreventOverflow Popper.js . | 
Atrybuty danych dla poszczególnych podpowiedzi
Opcje dla poszczególnych podpowiedzi można alternatywnie określić za pomocą atrybutów danych, jak wyjaśniono powyżej.
Metody
Metody asynchroniczne i przejścia
Wszystkie metody API są asynchroniczne i rozpoczynają przejście . Wracają do rozmówcy zaraz po rozpoczęciu przejścia, ale przed jego zakończeniem . Ponadto wywołanie metody na składniku przechodzącym zostanie zignorowane .
Zobacz naszą dokumentację JavaScript, aby uzyskać więcej informacji .
$().tooltip(options)
 
     Dołącza obsługę podpowiedzi do kolekcji elementów.
.tooltip('show')
 
     Odsłania opis elementu. Wraca do wywołującego przed wyświetleniem podpowiedzi (tj. przed shown.bs.tooltipwystąpieniem zdarzenia). Jest to uważane za „ręczne” wyzwalanie podpowiedzi. Etykietki narzędzi z tytułami o zerowej długości nigdy nie są wyświetlane.
$('#element').tooltip('show').tooltip('hide')
 
     Ukrywa podpowiedź elementu. Wraca do wywołującego, zanim podpowiedź została faktycznie ukryta (tj. przed hidden.bs.tooltipwystąpieniem zdarzenia). Jest to uważane za „ręczne” wyzwalanie podpowiedzi.
$('#element').tooltip('hide').tooltip('toggle')
 
     Przełącza podpowiedź elementu. Powraca do wywołującego, zanim podpowiedź została faktycznie pokazana lub ukryta (tj. przed wystąpieniem zdarzenia shown.bs.tooltiplub ). hidden.bs.tooltipJest to uważane za „ręczne” wyzwalanie podpowiedzi.
$('#element').tooltip('toggle').tooltip('dispose')
 
     Ukrywa i niszczy opis elementu. Etykietki narzędzi korzystające z delegowania (utworzone za pomocą opcji selector) nie mogą być indywidualnie niszczone w elementach podrzędnych wyzwalaczy.
$('#element').tooltip('dispose').tooltip('enable')
 
     Daje opisowi elementu możliwość pokazania. Etykietki narzędzi są domyślnie włączone.
$('#element').tooltip('enable').tooltip('disable')
 
     Usuwa możliwość wyświetlania podpowiedzi elementu. Etykietka będzie widoczna tylko wtedy, gdy zostanie ponownie włączona.
$('#element').tooltip('disable').tooltip('toggleEnabled')
 
     Przełącza możliwość pokazywania lub ukrywania podpowiedzi elementu.
$('#element').tooltip('toggleEnabled').tooltip('update')
 
     Aktualizuje pozycję podpowiedzi elementu.
$('#element').tooltip('update')Wydarzenia
| Typ wydarzenia | Opis | 
|---|---|
| pokaż.bs.podpowiedź | To zdarzenie jest wyzwalane natychmiast po showwywołaniu metody wystąpienia. | 
| pokazana.bs.podpowiedź | To zdarzenie jest wywoływane, gdy etykietka narzędzi jest widoczna dla użytkownika (poczeka na zakończenie przejścia CSS). | 
| ukryj.bs.podpowiedź | To zdarzenie jest wywoływane natychmiast po hidewywołaniu metody wystąpienia. | 
| ukryta.bs.podpowiedź | To zdarzenie jest wywoływane po zakończeniu ukrywania podpowiedzi przed użytkownikiem (poczeka na zakończenie przejścia CSS). | 
| wstawiono.bs.podpowiedź | To zdarzenie jest uruchamiane po show.bs.tooltipzdarzeniu, gdy szablon podpowiedzi został dodany do DOM. | 
$('#myTooltip').on('hidden.bs.tooltip', function () {
  // do something…
})