Описи алатки
Документација и примери за додавање прилагођених Боотстрап описа алатки са ЦСС-ом и ЈаваСцрипт-ом користећи ЦСС3 за анимације и дата-бс-атрибуте за локално складиштење наслова.
Преглед
Ствари које треба знати када користите додатак за опис алата:
- Алати се ослањају на библиотеку треће стране Поппер за позиционирање. Морате укључити поппер.мин.јс пре боотстрап.јс или користити
bootstrap.bundle.min.js
/bootstrap.bundle.js
који садржи Поппер да би описи функционисали! - Објашњења се могу укључити из разлога перформанси, тако да их морате сами иницијализирати .
- Објашњења са насловима нулте дужине се никада не приказују.
- Наведите
container: 'body'
да бисте избегли проблеме са приказивањем у сложенијим компонентама (као што су наше групе за унос, групе дугмади, итд.). - Покретање описа алатки на скривеним елементима неће радити.
- Објашњења за
.disabled
илиdisabled
елементе морају бити покренута на елементу омотача. - Када се активирају са хипервеза које обухватају више редова, описи алата ће бити центрирани. Користите
white-space: nowrap;
на свом<a>
с да бисте избегли ово понашање. - Објашњења морају бити сакривена пре него што се њихови одговарајући елементи уклоне из ДОМ-а.
- Алати се могу покренути захваљујући елементу унутар ДОМ-а у сенци.
prefers-reduced-motion
медијског упита. Погледајте одељак о
смањеном покрету наше документације о приступачности .
Имаш све то? Одлично, да видимо како раде на неким примерима.
Пример: Омогућите савете свуда
Један од начина да се иницијализују сви описи алата на страници био би да их изаберете према њиховом data-bs-toggle
атрибуту:
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl)
})
Примери
Пређите курсором преко линкова испод да бисте видели савете са алаткама:
Текст чувара места за демонстрирање неких уметнутих веза са описима алатки. Ово је сада само пунило, није убица. Садржај постављен овде само да опонаша присуство правог текста . И све то само да бисмо вам дали представу о томе како би описи алата изгледали када се користе у стварним ситуацијама. Дакле, надамо се да сте сада видели како ови савети везани за везе могу да функционишу у пракси, када их употребите на сопственом сајту или пројекту.
Пређите курсором преко дугмади у наставку да бисте видели четири упутства за савете: горе, десно, доле и лево. Упутства се пресликавају када користите Боотстрап у РТЛ-у.
<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>
И са додатком прилагођеног ХТМЛ-а:
<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>
Са СВГ:
Сасс
Променљиве
$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;
Употреба
Додатак за опис алата генерише садржај и ознаке на захтев, и подразумевано поставља описе алата након њиховог елемента окидача.
Покрени опис алатке преко ЈаваСцрипт-а:
var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, options)
Оверфлов auto
андscroll
Положај описа алатке покушава да се аутоматски промени када родитељски контејнер има overflow: auto
или overflow: scroll
воли наш .table-responsive
, али и даље задржава позиционирање оригиналног одредишта за пласман. Да бисте ово решили, подесите boundary
опцију (за модификатор флип који користи popperConfig
опцију) на било који ХТМЛЕлемент да бисте заменили подразумевану вредност, 'clippingParents'
као што је document.body
:
var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, {
boundary: document.body // or document.querySelector('#boundary')
})
Означавање
Потребна ознака за опис алата је само data
атрибут и title
на ХТМЛ елементу желите да имате опис алата. Генерисана ознака описа алата је прилично једноставна, иако захтева позицију (подразумевано, постављену на top
додатак).
Омогућите да савети функционишу за кориснике тастатуре и помоћне технологије
Требало би да додате само описе алата ХТМЛ елементима који су традиционално фокусирани на тастатуру и интерактивни (као што су везе или контроле обрасца). Иако произвољни ХТМЛ елементи (као што је <span>
с) могу бити фокусирани додавањем tabindex="0"
атрибута, ово ће додати потенцијално досадне и збуњујуће тачке табулатора на неинтерактивним елементима за кориснике тастатуре, а већина помоћних технологија тренутно не најављује опис алата у овој ситуацији. Поред тога, немојте се ослањати само на hover
окидач за свој опис алата, јер ће то онемогућити покретање ваших описа за кориснике тастатуре.
<!-- 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>
Онемогућени елементи
Елементи са disabled
атрибутом нису интерактивни, што значи да корисници не могу да се фокусирају, лебде мишем или кликну на њих да би покренули опис алата (или искачући прозор). Као заобилазно решење, желећете да покренете опис алатке из омотача <div>
или <span>
, идеално направљеног за фокусирање на тастатури помоћу 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>
Опције
Опције се могу пренети преко атрибута података или ЈаваСцрипт-а. За атрибуте података додајте име опције у data-bs-
, као у data-bs-animation=""
. Обавезно промените тип случаја назива опције из цамелЦасе у кебаб-цасе када преносите опције преко атрибута података. На пример, уместо да користите data-bs-customClass="beautifier"
, користите data-bs-custom-class="beautifier"
.
sanitize
,
sanitizeFn
и
allowList
не могу доставити коришћењем атрибута података.
Име | Тип | Уобичајено | Опис |
---|---|---|---|
animation |
боолеан | true |
Примените прелаз са ЦСС фаде на опис алатке |
container |
стринг | елемент | лажно | false |
Додаје опис алата одређеном елементу. Пример: |
delay |
број | објекат | 0 |
Одлагање приказивања и сакривања описа алата (мс) – не примењује се на тип ручног окидача Ако је наведен број, кашњење се примењује и на сакривање/прикажи Структура објекта је: |
html |
боолеан | false |
Дозволите ХТМЛ у опису алатке. Ако је тачно, ХТМЛ ознаке у опису алата Користите текст ако сте забринути због КССС напада. |
placement |
стринг | функција | 'top' |
Како поставити опис алата - ауто | врх | боттом | лево | јел тако. Када се функција користи за одређивање положаја, она се позива са ДОМ чвором алатке као првим аргументом и покретачким елементом ДОМ чвором као другим. Контекст |
selector |
стринг | лажно | false |
Ако је обезбеђен селектор, објекти описа алата ће бити делегирани наведеним циљевима. У пракси, ово се такође користи за примену описа алата на динамички додане ДОМ елементе ( jQuery.on подршка). Погледајте ово и информативни пример . |
template |
низ | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
Основни ХТМЛ који се користи приликом креирања описа алата. Објашњење
Најудаљенији елемент омотача треба да има |
title |
стринг | елемент | функција | '' |
Подразумевана вредност наслова ако Ако је дата функција, она ће бити позвана са својом |
trigger |
низ | 'hover focus' |
Како се покреће опис алата - кликните | ховер | фокус | упутство. Можете проследити више покретача; одвојите их размаком.
|
fallbackPlacements |
низ | ['top', 'right', 'bottom', 'left'] |
Дефинишите резервна одредишта за пласман тако што ћете навести листу одредишта за пласман у низу (по редоследу жеље). За више информација погледајте Попперове документе о понашању |
boundary |
стринг | елемент | 'clippingParents' |
Граница ограничења преливања у опису алата (односи се само на Попперов модификатор превентОверфлов). Подразумевано је 'clippingParents' и може да прихвати референцу ХТМЛЕлемента (само преко ЈаваСцрипт-а). За више информација погледајте Поппер'с детецтОверфлов документе . |
customClass |
стринг | функција | '' |
Додајте класе у опис алата када се прикаже. Имајте на уму да ће ове класе бити додате поред свих класа наведених у шаблону. Да бисте додали више класа, раздвојите их размацима: Такође можете проследити функцију која треба да врати један стринг који садржи додатна имена класа. |
sanitize |
боолеан | true |
Омогућите или онемогућите дезинфекцију. Ако се активира 'template' и 'title' опције ће бити дезинфициране. Погледајте одељак за дезинфекцију у нашој ЈаваСцрипт документацији . |
allowList |
објекат | Задана вриједност | Објекат који садржи дозвољене атрибуте и ознаке |
sanitizeFn |
нулл | функција | null |
Овде можете обезбедити сопствену функцију дезинфекције. Ово може бити корисно ако више волите да користите наменску библиотеку за дезинфекцију. |
offset |
низ | стринг | функција | [0, 0] |
Померање описа алатке у односу на циљ. Можете проследити стринг у атрибутима података са вредностима одвојеним зарезима као што су: Када се функција користи за одређивање офсета, она се позива са објектом који садржи поппер пласман, референцу и поппер рецтс као први аргумент. ДОМ чвор покретачког елемента се прослеђује као други аргумент. Функција мора да врати низ са два броја: . За више информација погледајте Попперове офсет документе . |
popperConfig |
нулл | објекат | функција | null |
Да бисте променили Боотстрап-ову подразумевану Поппер конфигурацију, погледајте Поппер-ову конфигурацију . Када се функција користи за креирање Поппер конфигурације, она се позива са објектом који садржи Боотстрап-ову подразумевану Поппер конфигурацију. Помаже вам да користите и спојите подразумевану са сопственом конфигурацијом. Функција мора да врати конфигурациони објекат за Поппер. |
Атрибути података за појединачне описе алата
Опције за појединачне описе алата могу се алтернативно специфицирати коришћењем атрибута података, као што је горе објашњено.
Коришћење функције саpopperConfig
var tooltip = new bootstrap.Tooltip(element, {
popperConfig: function (defaultBsPopperConfig) {
// var newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
Методе
Асинхроне методе и прелази
Све АПИ методе су асинхроне и покрећу транзицију . Они се враћају позиваоцу чим се транзиција започне, али пре него што се заврши . Поред тога, позив методе за прелазну компоненту биће занемарен .
Погледајте нашу ЈаваСцрипт документацију за више информација .
Прикажи
Открива опис елемента. Враћа се позиваоцу пре него што је опис алата заиста приказан (тј. пре него што се shown.bs.tooltip
догађај деси). Ово се сматра „ручним“ покретањем описа алата. Објашњења са насловима нулте дужине се никада не приказују.
tooltip.show()
сакрити
Сакрива опис елемента. Враћа се позиваоцу пре него што је опис алатке заиста сакривен (тј. пре него што се hidden.bs.tooltip
догађај деси). Ово се сматра „ручним“ покретањем описа алата.
tooltip.hide()
искључи
Укључује опис елемента. Враћа се позиваоцу пре него што је опис алатке заправо приказан или сакривен (тј. пре него што се деси догађај shown.bs.tooltip
или ). hidden.bs.tooltip
Ово се сматра „ручним“ покретањем описа алата.
tooltip.toggle()
располагати
Сакрива и уништава опис елемента (уклања сачуване податке на ДОМ елементу). Објашњење које користи делегирање (које се креира помоћу опције selector
) не може се појединачно уништити на елементима окидача потомака.
tooltip.dispose()
омогућити
Даје могућност приказа алатке елемента. Објашњења су подразумевано омогућена.
tooltip.enable()
онемогућити
Уклања могућност приказа описа елемента. Објашњење ће моћи да се прикаже само ако је поново омогућено.
tooltip.disable()
тогглеЕнаблед
Укључује могућност приказивања или сакривања описа елемента.
tooltip.toggleEnabled()
ажурирање
Ажурира позицију описа елемента.
tooltip.update()
гетИнстанце
Статичка метода која вам омогућава да добијете инстанцу описа алата која је повезана са ДОМ елементом
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance
гетОрЦреатеИнстанце
Статичка метода која вам омогућава да добијете инстанцу описа алата која је повезана са ДОМ елементом или да креирате нову у случају да није иницијализована
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getOrCreateInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance
Догађаји
Тип догађаја | Опис |
---|---|
show.bs.tooltip |
Овај догађај се покреће одмах када show се позове метод инстанце. |
shown.bs.tooltip |
Овај догађај се покреће када опис алата постане видљив кориснику (сачекаће да се ЦСС транзиције доврше). |
hide.bs.tooltip |
Овај догађај се покреће одмах када hide се позове метод инстанце. |
hidden.bs.tooltip |
Овај догађај се покреће када се опис алатке заврши са сакривањем од корисника (сачекаће да се ЦСС транзиције доврше). |
inserted.bs.tooltip |
Овај догађај се покреће након show.bs.tooltip догађаја када је шаблон објашњења додат у ДОМ. |
var myTooltipEl = document.getElementById('myTooltip')
var tooltip = new bootstrap.Tooltip(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', function () {
// do something...
})
tooltip.hide()