Пређи на главни садржај Прескочи на навигацију докумената
Check
in English

Описи алатки

Документација и примери за додавање прилагођених Боотстрап описа алатки са ЦСС-ом и ЈаваСцрипт-ом користећи ЦСС3 за анимације и дата-бс-атрибуте за локално складиштење наслова.

Преглед

Ствари које треба знати када користите додатак за опис алата:

  • Алати се ослањају на библиотеку треће стране Поппер за позиционирање. Морате укључити поппер.мин.јс пре bootstrap.jsили користити онај bootstrap.bundle.min.jsкоји садржи Поппер.
  • Објашњења се могу укључити из разлога перформанси, тако да их морате сами иницијализирати .
  • Објашњења са насловима нулте дужине се никада не приказују.
  • Наведите container: 'body'да бисте избегли проблеме са приказивањем у сложенијим компонентама (као што су наше групе за унос, групе дугмади, итд.).
  • Покретање описа алатки на скривеним елементима неће радити.
  • Објашњења за .disabledили disabledелементе морају бити покренута на елементу омотача.
  • Када се активирају са хипервеза које обухватају више редова, описи алата ће бити центрирани. Користите white-space: nowrap;на свом <a>с да бисте избегли ово понашање.
  • Објашњења морају бити сакривена пре него што се њихови одговарајући елементи уклоне из ДОМ-а.
  • Алати се могу покренути захваљујући елементу унутар ДОМ-а у сенци.

Имаш све то? Одлично, да видимо како раде на неким примерима.

Ова компонента подразумевано користи уграђену дезинфекцију садржаја, која уклања све ХТМЛ елементе који нису експлицитно дозвољени. За више детаља погледајте одељак са средством за дезинфекцију у нашој ЈаваСцрипт документацији .
Ефекат анимације ове компоненте зависи од prefers-reduced-motionмедијског упита. Погледајте одељак о смањеном покрету наше документације о приступачности .

Примери

Омогући савете

Као што је горе поменуто, морате иницијализовати описе алата пре него што се могу користити. Један од начина да се иницијализују сви описи алата на страници био би да их изаберете према њиховом data-bs-toggleатрибуту, на пример:

const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))

Пређите курсором преко линкова испод да бисте видели савете са алаткама:

Текст чувара места за демонстрирање неких уметнутих веза са описима алатки. Ово је сада само пунило, није убица. Садржај постављен овде само да опонаша присуство правог текста . И све то само да бисмо вам дали представу о томе како би описи алата изгледали када се користе у стварним ситуацијама. Дакле, надамо се да сте сада видели како ови савети везани за везе могу да функционишу у пракси, када их употребите на сопственом сајту или пројекту.

хтмл
<p class="muted">Placeholder text to demonstrate some <a href="#" data-bs-toggle="tooltip" data-bs-title="Default tooltip">inline links</a> with tooltips. This is now just filler, no killer. Content placed here just to mimic the presence of <a href="#" data-bs-toggle="tooltip" data-bs-title="Another tooltip">real text</a>. And all that just to give you an idea of how tooltips would look when used in real-world situations. So hopefully you've now seen how <a href="#" data-bs-toggle="tooltip" data-bs-title="Another one here too">these tooltips on links</a> can work in practice, once you use them on <a href="#" data-bs-toggle="tooltip" data-bs-title="The last tip!">your own</a> site or project.
</p>
Слободно користите било који titleили data-bs-titleу свом ХТМЛ-у. Када titleсе користи, Поппер ће га аутоматски заменити data-bs-titleкада се елемент прикаже.

Прилагођени описи алата

Додато у в5.2.0

Можете да прилагодите изглед описа алатки користећи ЦСС променљиве . Постављамо прилагођену класу са data-bs-custom-class="custom-tooltip"за опсег нашег прилагођеног изгледа и користимо је да заменимо локалну ЦСС променљиву.

.custom-tooltip {
  --bs-tooltip-bg: var(--bs-primary);
}
хтмл
<button type="button" class="btn btn-secondary"
        data-bs-toggle="tooltip" data-bs-placement="top"
        data-bs-custom-class="custom-tooltip"
        data-bs-title="This top tooltip is themed via CSS variables.">
  Custom tooltip
</button>

Упутства

Пређите курсором преко дугмади у наставку да бисте видели четири упутства за савете: горе, десно, доле и лево. Упутства се пресликавају када користите Боотстрап у РТЛ-у.

<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Tooltip on top">
  Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-title="Tooltip on right">
  Tooltip on right
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Tooltip on bottom">
  Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="left" data-bs-title="Tooltip on left">
  Tooltip on left
</button>

И са додатком прилагођеног ХТМЛ-а:

<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-html="true" data-bs-title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
  Tooltip with HTML
</button>

Са СВГ:

ЦСС

Променљиве

Додато у в5.2.0

Као део Боотстрап-овог еволуирајућег приступа ЦСС варијабли, описи алата сада користе локалне ЦСС променљиве укључене .tooltipза побољшано прилагођавање у реалном времену. Вредности за ЦСС променљиве се постављају преко Сасс-а, тако да је и Сасс прилагођавање и даље подржано.

  --#{$prefix}tooltip-zindex: #{$zindex-tooltip};
  --#{$prefix}tooltip-max-width: #{$tooltip-max-width};
  --#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
  --#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
  --#{$prefix}tooltip-margin: #{$tooltip-margin};
  @include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
  --#{$prefix}tooltip-color: #{$tooltip-color};
  --#{$prefix}tooltip-bg: #{$tooltip-bg};
  --#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
  --#{$prefix}tooltip-opacity: #{$tooltip-opacity};
  --#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};
  --#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};
  

Сасс варијабле

$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:                    null; // TODO: remove this in v6

$tooltip-arrow-width:               .8rem;
$tooltip-arrow-height:              .4rem;
// fusv-disable
$tooltip-arrow-color:               null; // Deprecated in Bootstrap 5.2.0 for CSS variables
// fusv-enable

Употреба

Додатак за опис алата генерише садржај и ознаке на захтев, и подразумевано поставља описе алата након њиховог елемента окидача.

Покрени опис алатке преко ЈаваСцрипт-а:

const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
Оверфлов autoандscroll

Положај описа алатке покушава да се аутоматски промени када родитељски контејнер има overflow: autoили overflow: scrollволи наш .table-responsive, али и даље задржава позиционирање оригиналног одредишта за пласман. Да бисте ово решили, подесите boundaryопцију (за модификатор флип који користи popperConfigопцију) на било који ХТМЛЕлемент да бисте заменили подразумевану вредност, 'clippingParents'као што је document.body:

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

Означавање

Потребна ознака за опис алата је само dataатрибут и titleна ХТМЛ елементу желите да имате опис алата. Генерисана ознака описа алата је прилично једноставна, иако захтева позицију (подразумевано, постављену на topдодатак).

Омогућите да савети функционишу за кориснике тастатуре и помоћне технологије

Требало би да додате само описе алата ХТМЛ елементима који су традиционално фокусирани на тастатуру и интерактивни (као што су везе или контроле обрасца). Иако произвољни ХТМЛ елементи (као што је <span>с) могу бити фокусирани додавањем tabindex="0"атрибута, ово ће додати потенцијално досадне и збуњујуће тачке табулатора на неинтерактивним елементима за кориснике тастатуре, а већина помоћних технологија тренутно не најављује опис алата у овој ситуацији. Поред тога, немојте се ослањати само на hoverокидач за свој опис алата, јер ће то онемогућити покретање ваших описа за кориснике тастатуре.

<!-- HTML to write -->
<a href="#" data-bs-toggle="tooltip" data-bs-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>

Онемогућени елементи

Елементи са disabledатрибутом нису интерактивни, што значи да корисници не могу да се фокусирају, лебде мишем или кликну на њих да би покренули опис алата (или искачући прозор). Као заобилазно решење, желећете да покренете опис алатке из омотача <div>или <span>, идеално направљеног за фокусирање на тастатури помоћу tabindex="0".

хтмл
<span class="d-inline-block" tabindex="0" data-bs-toggle="tooltip" data-bs-title="Disabled tooltip">
  <button class="btn btn-primary" type="button" disabled>Disabled button</button>
</span>

Опције

Пошто опције могу да се прослеђују преко атрибута података или ЈаваСцрипт-а, можете додати име опције у data-bs-, као у data-bs-animation="{value}". Обавезно промените тип случаја назива опције из „ цамелЦасе ” у „ кебаб-цасе ” када преносите опције преко атрибута података. На пример, користите data-bs-custom-class="beautifier"уместо data-bs-customClass="beautifier".

Од Боотстрап 5.2.0, све компоненте подржавају експериментални резервисани атрибут података data-bs-configкоји може да садржи једноставну конфигурацију компоненте као ЈСОН стринг. Када елемент има атрибуте data-bs-config='{"delay":0, "title":123}'и data-bs-title="456", коначна titleвредност ће бити 456и одвојени атрибути података ће заменити вредности дате на data-bs-config. Поред тога, постојећи атрибути података могу да садрже ЈСОН вредности попут data-bs-delay='{"show":0,"hide":150}'.

Имајте на уму да се из безбедносних разлога опције sanitize, sanitizeFnи allowListне могу доставити коришћењем атрибута података.
Име Тип Уобичајено Опис
allowList објекат Задана вриједност Објекат који садржи дозвољене атрибуте и ознаке.
animation боолеан true Примените ЦСС прелаз изблеђивања на опис алата.
boundary стринг, елемент 'clippingParents' Граница ограничења преливања у опису алата (односи се само на Попперов модификатор превентОверфлов). Подразумевано је 'clippingParents'и може да прихвати референцу ХТМЛЕлемента (само преко ЈаваСцрипт-а). За више информација погледајте Поппер'с детецтОверфлов документе .
container стринг, елемент, нетачно false Додаје опис алата одређеном елементу. Пример: container: 'body'. Ова опција је посебно корисна по томе што вам омогућава да позиционирате опис алата у току документа близу елемента за окидање – што ће спречити да опис алата одлебди од елемента за окидање током промене величине прозора.
customClass стринг, функција '' Додајте класе у опис алата када се прикаже. Имајте на уму да ће ове класе бити додате поред свих класа наведених у шаблону. Да бисте додали више класа, раздвојите их размацима: 'class-1 class-2'. Такође можете проследити функцију која треба да врати један стринг који садржи додатна имена класа.
delay број, објекат 0 Одлагање приказивања и сакривања описа алата (мс)—не примењује се на тип ручног окидача. Ако је наведен број, кашњење се примењује и на сакривање/прикажи. Структура објекта је: delay: { "show": 500, "hide": 100 }.
fallbackPlacements низ ['top', 'right', 'bottom', 'left'] Дефинишите резервна одредишта за пласман тако што ћете навести листу одредишта за пласман у низу (по редоследу жеље). За више информација погледајте документе о понашању Поппера .
html боолеан false Дозволите ХТМЛ у опису алатке. Ако је тачно, ХТМЛ ознаке у опису алата titleће бити приказане у опису алата. Ако је нетачно, innerTextсвојство ће се користити за уметање садржаја у ДОМ. Користите текст ако сте забринути због КССС напада.
offset низ, стринг, функција [0, 0] Померање описа алатке у односу на циљ. Можете проследити стринг у атрибутима података са вредностима одвојеним зарезима као што су: data-bs-offset="10,20". Када се функција користи за одређивање офсета, она се позива са објектом који садржи поппер пласман, референцу и поппер рецтс као први аргумент. ДОМ чвор покретачког елемента се прослеђује као други аргумент. Функција мора да врати низ са два броја: клизање , растојање . За више информација погледајте Попперове офсет документе .
placement стринг, функција 'top' Како поставити опис алата: аутоматски, горе, доле, лево, десно. Када autoје наведено, динамички ће преоријентисати опис алата. Када се функција користи за одређивање положаја, она се позива са ДОМ чвором алатке као првим аргументом и покретачким елементом ДОМ чвором као другим. Контекст thisје постављен на инстанцу описа алата.
popperConfig нулл, објекат, функција null Да бисте променили Боотстрап-ову подразумевану Поппер конфигурацију, погледајте Поппер-ову конфигурацију . Када се функција користи за креирање Поппер конфигурације, она се позива са објектом који садржи Боотстрап-ову подразумевану Поппер конфигурацију. Помаже вам да користите и спојите подразумевану са сопственом конфигурацијом. Функција мора да врати конфигурациони објекат за Поппер.
sanitize боолеан true Омогућите или онемогућите дезинфекцију. Ако је активирано 'template', 'content'и 'title'опције ће бити саниране.
sanitizeFn нулл, функција null Овде можете обезбедити сопствену функцију дезинфекције. Ово може бити корисно ако више волите да користите наменску библиотеку за дезинфекцију.
selector стринг, лажно false Ако је обезбеђен селектор, објекти описа алата ће бити делегирани наведеним циљевима. У пракси, ово се такође користи за примену описа алата на динамички додане ДОМ елементе ( jQuery.onподршка). Погледајте ово издање и информативни пример .
template низ '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' Основни ХТМЛ који се користи приликом креирања описа алата. Објашњење titleће бити убризгано у .tooltip-inner. .tooltip-arrowпостаће стрелица у опису алата. Најудаљенији елемент омотача треба да има .tooltipкласу и role="tooltip".
title стринг, елемент, функција '' Подразумевана вредност наслова ако titleатрибут није присутан. Ако је дата функција, она ће бити позвана са својом thisреференцом постављеном на елемент за који је повезан искачући прозор.
trigger низ 'hover focus' Како се покреће опис алата: кликните, лебдите, фокус, ручно. Можете проследити више покретача; одвојите их размаком. 'manual'означава да ће се опис алата покренути програмски преко метода и .tooltip('show'); ова вредност се не може комбиновати ни са једним другим окидачем. сама по себи ће резултирати описима алата који се не могу покренути преко тастатуре и треба их користити само ако постоје алтернативни методи за преношење истих информација за кориснике тастатуре..tooltip('hide').tooltip('toggle')'hover'

Атрибути података за појединачне описе алата

Опције за појединачне описе алата могу се алтернативно специфицирати коришћењем атрибута података, као што је горе објашњено.

Коришћење функције саpopperConfig

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

Методе

Асинхроне методе и прелази

Све АПИ методе су асинхроне и покрећу транзицију . Они се враћају позиваоцу чим се транзиција започне, али пре него што се заврши . Поред тога, позив методе за прелазну компоненту биће занемарен .

Погледајте нашу ЈаваСцрипт документацију за више информација .

Метод Опис
disable Уклања могућност приказа описа елемента. Објашњење ће моћи да се прикаже само ако је поново омогућено.
dispose Сакрива и уништава опис елемента (уклања сачуване податке на ДОМ елементу). Објашњење које користи делегирање (које се креира помоћу опције selector) не може се појединачно уништити на елементима окидача потомака.
enable Даје могућност приказа алатке елемента. Објашњења су подразумевано омогућена.
getInstance Статичка метода која вам омогућава да добијете инстанцу описа алата која је повезана са ДОМ елементом или да креирате нову у случају да није иницијализована.
getOrCreateInstance Статичка метода која вам омогућава да добијете инстанцу описа алата која је повезана са ДОМ елементом или да креирате нову у случају да није иницијализована.
hide Сакрива опис елемента. Враћа се позиваоцу пре него што је опис алатке заиста сакривен (тј. пре него што се hidden.bs.tooltipдогађај деси). Ово се сматра „ручним“ покретањем описа алата.
setContent Даје начин да промените садржај описа алата након његове иницијализације.
show Открива опис елемента. Враћа се позиваоцу пре него што је опис алата заиста приказан (тј. пре него што се shown.bs.tooltipдогађај деси). Ово се сматра „ручним“ покретањем описа алата. Објашњења са насловима нулте дужине се никада не приказују.
toggle Укључује опис елемента. Враћа се позиваоцу пре него што је опис алатке заправо приказан или сакривен (тј. пре него што се деси догађај shown.bs.tooltipили ). hidden.bs.tooltipОво се сматра „ручним“ покретањем описа алата.
toggleEnabled Укључује могућност приказивања или сакривања описа елемента.
update Ажурира позицију описа елемента.
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance

// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
Метод setContentприхвата objectаргумент, при чему је сваки кључ својства важећи stringселектор унутар шаблона искачућег приказа, а свака сродна вредност својства може бити string| element| function| null

Догађаји

Догађај Опис
hide.bs.tooltip Овај догађај се покреће одмах када hideсе позове метод инстанце.
hidden.bs.tooltip Овај догађај се покреће када се искачући прозор заврши са сакривањем од корисника (сачекаће да се ЦСС транзиције доврше).
inserted.bs.tooltip Овај догађај се покреће након show.bs.tooltipдогађаја када је шаблон објашњења додат у ДОМ.
show.bs.tooltip Овај догађај се покреће одмах када showсе позове метод инстанце.
shown.bs.tooltip Овај догађај се покреће када искачући прозор постане видљив кориснику (сачекаће да се ЦСС транзиције доврше).
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)

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

tooltip.hide()