Кеңештер
Анимациялар үчүн CSS3 жана жергиликтүү аталыштарды сактоо үчүн data-bs-атрибуттарын колдонуу менен CSS жана JavaScript менен ыңгайлаштырылган Bootstrap инструменттерин кошуу үчүн документтер жана мисалдар.
Обзор
Tooltip плагинин колдонууда эмнени билүү керек:
- Куралдар кеңештери жайгаштыруу үчүн 3-тараптын Поппер китепканасына таянат . Сиз bootstrap.js алдында popper.min.js кошушуңуз керек же кеңештер иштеши үчүн Popper камтылган
bootstrap.bundle.min.js
/ колдонушуңуз керек!bootstrap.bundle.js
- Кеңештер майнаптуу себептерден улам кошулган, андыктан аларды өзүңүз башташыңыз керек .
- Узундугу нөлгө барабар болгон кеңештер эч качан көрсөтүлбөйт.
container: 'body'
Татаалыраак компоненттерде (мисалы, киргизүү топторубуз, баскыч топторубуз ж.б.) көйгөйлөрдү жаратпаш үчүн белгилеңиз .- Жашыруун элементтер боюнча кеңештерди иштетүү иштебейт.
- Ороочу элементте
.disabled
жеdisabled
элементтер үчүн кеңештер иштетилиши керек. - Бир нече саптарды камтыган гипершилтемелерден иштетилгенде, кеңештер борборлоштурулат. Бул жүрүм-турумду болтурбоо үчүн
white-space: nowrap;
сиздин с боюнча колдонуңуз .<a>
- Тиешелүү элементтери DOMдан алынып салынганга чейин, кеңештер жашырылышы керек.
- Төмөнкү DOM ичиндеги элементтин жардамы менен кеңештерди иштетсе болот.
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)
})
Мисалдар
Куралдар кеңештерин көрүү үчүн төмөнкү шилтемелердин үстүнөн өтүңүз:
Куралдар кеңештери менен кээ бир ички шилтемелерди көрсөтүү үчүн толтургуч текст . Бул азыр жөн эле толтургуч, өлтүргүч эмес. Мазмун бул жерде чыныгы тексттин болушун туураш үчүн жайгаштырылган . Мунун баары сизге курал кеңештери чыныгы кырдаалда колдонулганда кандай болору жөнүндө түшүнүк берүү үчүн. Ошентип, сиз азыр шилтемелер боюнча бул кеңештерди өзүңүздүн сайтыңызда же долбооруңузда колдонгондон кийин, иш жүзүндө кантип иштээрин көрдүңүз деп үмүттөнөбүз .
Курал кеңештеринин төрт багытын көрүү үчүн ылдыйдагы баскычтардын үстүнө өтүңүз: жогорку, оң, ылдый жана сол. RTLде Bootstrap колдонууда багыттар чагылдырылат.
<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>
Жана өзгөчө 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>
SVG менен:
Sass
Өзгөрмөлөр
$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;
Колдонуу
Tooltip плагини мазмунду жана суроо-талап боюнча белгилерди жаратат жана демейки шартта куралдар кеңештерин триггер элементинен кийин жайгаштырат.
JavaScript аркылуу инструментти иштетиңиз:
var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, options)
Толуп кетүү auto
жанаscroll
Аспаптын позициясы ата- энелик контейнерге ээ болгондо overflow: auto
же overflow: scroll
биз жактырганда автоматтык түрдө өзгөртүүгө аракет кылат .table-responsive
, бирок ошентсе да баштапкы жайгаштыруунун ордун сактап калат. Муну чечүү үчүн , демейки маанини жокко чыгаруу үчүн каалаган HTMLElement 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
HTML элементинде сиз кеңешке ээ болгуңуз келет. Аспаптын генерацияланган белгилөөсү өтө жөнөкөй, бирок ал позицияны талап кылат (демейки боюнча, top
плагин тарабынан коюлган).
Клавиатура жана жардамчы технология колдонуучулары үчүн кеңештерди иштетүү
Салттуу түрдө клавиатурага багытталган жана интерактивдүү HTML элементтерине курал кеңештерин гана кошушуңуз керек (мисалы, шилтемелер же форманы башкаруу элементтери). Ылдыйкы HTML элементтерин (мисалы, <span>
s) 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>
Параметрлер
Параметрлер маалымат атрибуттары же JavaScript аркылуу берилиши мүмкүн. Дайындардын атрибуттары үчүн параметрдин атын data-bs-
, сыяктуу эле кошуңуз data-bs-animation=""
. Опцияларды маалымат атрибуттары аркылуу өткөрүп жатканда, опциондун аталышынын кейпинин түрүн camelCaseтен кебаб-кепке өзгөртүүнү унутпаңыз. Мисалы, колдонуунун ордуна data-bs-customClass="beautifier"
, колдонуңуз data-bs-custom-class="beautifier"
.
sanitize
,
sanitizeFn
, жана
allowList
опцияларын маалымат атрибуттары менен камсыздоо мүмкүн эмес экенин эске алыңыз.
аты | Type | Демейки | Description |
---|---|---|---|
animation |
логикалык | true |
Куралдар үчүн CSS өчүп өтүүнү колдонуңуз |
container |
string | элемент | жалган | false |
Белгилүү бир элементке инструментти кошот. Мисал: |
delay |
саны | объект | 0 |
Курал кеңешин көрсөтүү жана жашыруу кечигүү (мс) - кол менен триггер түрүнө тиешелүү эмес Эгерде номер берилсе, кечиктирүү эки жашыруу/көрсөтүү үчүн колдонулат Объекттин структурасы: |
html |
логикалык | false |
Инструментте HTMLге уруксат бериңиз. Эгер чын болсо, инструментарийдеги HTML тегдери инструментарийде XSS чабуулдарынан кооптонуп жатсаңыз, текстти колдонуңуз. |
placement |
string | функция | 'top' |
Куралды кантип жайгаштыруу керек - авто | top | түбү | сол | туура. Функция жайгаштырууну аныктоо үчүн колдонулганда, ал биринчи аргумент катары шаймандык DOM түйүнү жана экинчиси катары триггер элементи DOM түйүнү менен чакырылат. Контекст |
selector |
string | жалган | false |
Эгерде селектор камсыз кылынса, инструментарий объекттери көрсөтүлгөн максаттарга өткөрүлүп берилет. Иш жүзүндө, бул динамикалык кошулган DOM элементтерине ( jQuery.on колдоо) кеңештерди колдонуу үчүн колдонулат. Бул жана маалыматтык мисалды караңыз . |
template |
сап | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
Инструментти түзүүдө колдонуу үчүн HTML базасы. Куралдуу
Эң сырткы ороочу элементте |
title |
string | элемент | функция | '' |
Функция берилсе, ал |
trigger |
сап | 'hover focus' |
Инструментарий кантип иштетилет - чыкылдатыңыз | hover | фокус | колдонмо. Сиз бир нече триггерлерди өткөрө аласыз; аларды боштук менен ажыратыңыз.
|
fallbackPlacements |
массив | ['top', 'right', 'bottom', 'left'] |
Массивдеги жайгаштыруулардын тизмесин берүү менен кайра жайгаштырууларды аныктаңыз (артыкчылык иретинде). Көбүрөөк маалымат алуу үчүн Поппердин жүрүм-турум документтерине кайрылыңыз |
boundary |
string | элемент | 'clippingParents' |
Аспаптын ашуусун чектөө чектери (Поппердин preventOverflow модификаторуна гана тиешелүү). Демейки боюнча, ал 'clippingParents' HTMLElement шилтемесин кабыл алат жана (JavaScript аркылуу гана). Көбүрөөк маалымат алуу үчүн Поппердин detectOverflow документтерине кайрылыңыз . |
customClass |
string | функция | '' |
Көрсөтүлгөндө, кеңешке класстарды кошуңуз. Бул класстар шаблондо көрсөтүлгөн класстарга кошумча кошулаарын эске алыңыз. Бир нече класстарды кошуу үчүн аларды боштуктар менен бөлүңүз: Сиз ошондой эле кошумча класс атын камтыган бир сапты кайтара турган функцияны өткөрүп бере аласыз. |
sanitize |
логикалык | true |
Санитизацияны иштетүү же өчүрүү. Эгер иштетилсе 'template' жана 'title' опциялар тазаланат. Биздин JavaScript документтерибиздин дезинфекциялоочу бөлүгүн караңыз . |
allowList |
объект | Демейки маани | Уруксат берилген атрибуттарды жана тегдерди камтыган объект |
sanitizeFn |
null | функция | null |
Бул жерде сиз өзүңүздүн дезинфекциялоо функциясын бере аласыз. Санитизациялоо үчүн атайын китепкананы колдонууну кааласаңыз, бул пайдалуу болушу мүмкүн. |
offset |
массив | string | функция | [0, 0] |
Курал тилкесинин максатына салыштырмалуу жылышы. Сиз маалымат атрибуттарында сапты үтүр менен бөлүнгөн маанилер менен өткөрө аласыз, мисалы: Функция жылышууну аныктоо үчүн колдонулганда, анын биринчи аргументи катары поппер жайгашуусун, шилтемени жана поппер түзмөгүн камтыган объект менен чакырылат. Иштетүүчү элемент DOM түйүнү экинчи аргумент катары өткөрүлөт. Функция эки сандан турган массивди кайтарышы керек: . Көбүрөөк маалымат алуу үчүн Поппердин офсеттик документтерине кайрылыңыз . |
popperConfig |
null | объект | функция | null |
Bootstrap демейки Popper конфигурациясын өзгөртүү үчүн Поппердин конфигурациясын караңыз . Функция Popper конфигурациясын түзүү үчүн колдонулганда, ал Bootstrap демейки Popper конфигурациясын камтыган объект менен чакырылат. Бул демейки конфигурацияңызды колдонууга жана бириктирүүгө жардам берет. Функция Поппер үчүн конфигурация объектин кайтарышы керек. |
Жеке кеңештер үчүн маалымат атрибуттары
Жеке инструменттердин параметрлери, жогоруда түшүндүрүлгөндөй, маалымат атрибуттарын колдонуу аркылуу альтернатива катары көрсөтүлүшү мүмкүн.
менен функцияны колдонууpopperConfig
var tooltip = new bootstrap.Tooltip(element, {
popperConfig: function (defaultBsPopperConfig) {
// var newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
Методдор
Асинхрондук методдор жана өтүүлөр
Бардык API ыкмалары асинхрондуу жана өтүүнү баштайт . Алар чалуучуга өтүү башталаары менен, бирок ал бүтө электе кайтып келишет . Кошумчалай кетсек, өтүүчү компоненттеги ыкма чакырыгы этибарга алынбайт .
Көбүрөөк маалымат алуу үчүн биздин JavaScript документтерибизди караңыз .
көрсөтүү
Элементтин кеңешин көрсөтөт. Чалуучуга инструментарий иш жүзүндө көрсөтүлө электе (б.а. shown.bs.tooltip
окуя болгонго чейин) кайтып келет. Бул инструментти "кол менен" ишке киргизүү деп эсептелет. Узундугу нөлгө барабар болгон кеңештер эч качан көрсөтүлбөйт.
tooltip.show()
жашыруу
Элементтин кеңешин жашырат. Чалуучуга инструментарий чындап жашырылганга чейин (б.а. hidden.bs.tooltip
окуя болгонго чейин) кайтып келет. Бул инструментти "кол менен" ишке киргизүү деп эсептелет.
tooltip.hide()
которуштуруу
Элементтин кеңешин которуштуруу. Чалуучуга инструментарий иш жүзүндө көрсөтүлгөнгө же жашырылганга чейин (б.а. shown.bs.tooltip
же hidden.bs.tooltip
окуя болгонго чейин) кайтып келет. Бул инструментти "кол менен" ишке киргизүү деп эсептелет.
tooltip.toggle()
тескөө
Элементтин инструменттерин жашырат жана жок кылат (DOM элементинде сакталган маалыматтарды жок кылат). Өкүлчүлүктү колдонгон кеңештерди ( опцияны колдонуу мененselector
түзүлгөн ) тукум триггер элементтеринде өзүнчө жок кылууга болбойт.
tooltip.dispose()
иштетүү
Элементтин курал кеңешине көрсөтүү мүмкүнчүлүгүн берет. Кеңештер демейки боюнча иштетилген.
tooltip.enable()
өчүрүү
Элементтин куралдар кеңешин көрсөтүү мүмкүнчүлүгүн жок кылат. Курал кеңеши кайра иштетилгенде гана көрсөтүлө алат.
tooltip.disable()
toggleEnabled
Элементтин кеңешин көрсөтүү же жашыруу мүмкүнчүлүгүн өчүрөт.
tooltip.toggleEnabled()
жаңыртуу
Элементтин инструментинин ордун жаңыртат.
tooltip.update()
getInstance
DOM элементи менен байланышкан инструменттин үлгүсүн алууга мүмкүндүк берген статикалык ыкма
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance
getOrCreateInstance
DOM элементи менен байланышкан инструменттин үлгүсүн алууга же ал инициализацияланбаган учурда жаңысын түзүүгө мүмкүндүк берген статикалык ыкма
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getOrCreateInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance
Окуялар
Окуя түрү | Description |
---|---|
show.bs.tooltip |
Бул окуя show инстанция ыкмасы чакырылганда дароо күйөт. |
shown.bs.tooltip |
Бул окуя куралдын кеңеши колдонуучуга көрүнгөндөн кийин өчүрүлөт (CSS өтүүлөрү бүткүчө күтөт). |
hide.bs.tooltip |
Бул окуя hide инстанция ыкмасы чакырылганда дароо өчүрүлөт. |
hidden.bs.tooltip |
Бул окуя куралдын кеңеши колдонуучудан жашырылгандан кийин өчүрүлөт (CSS өтүүлөрү бүткүчө күтөт). |
inserted.bs.tooltip |
Бул окуя show.bs.tooltip окуядан кийин, курал үлгүсү DOMга кошулгандан кийин өчүрүлөт. |
var myTooltipEl = document.getElementById('myTooltip')
var tooltip = new bootstrap.Tooltip(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', function () {
// do something...
})
tooltip.hide()