Маслиҳатҳо
Ҳуҷҷатҳо ва мисолҳо барои илова кардани маслиҳатҳои фармоишии Bootstrap бо CSS ва JavaScript бо истифода аз CSS3 барои аниматсияҳо ва атрибутҳои data-bs-атрибутҳо барои нигаҳдории унвонҳои маҳаллӣ.
Барраси
Чизҳоеро, ки ҳангоми истифодаи плагини абзор бояд донист:
- Маслиҳатҳо барои ҷойгиркунӣ ба китобхонаи тарафи сеюми Popper такя мекунанд. Шумо бояд пеш аз bootstrap.js popper.min.js-ро дохил кунед ё истифода баред
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)
})
Мисолхо
Барои дидани маслиҳатҳои асбобҳо ба болои истинодҳои зер гузаред:
Матни ҷойнишин барои нишон додани баъзе пайвандҳои дохилӣ бо маслиҳатҳои асбобҳо. Ин ҳоло танҳо пуркунанда аст, на қотил. Мундариҷа дар ин ҷо танҳо барои тақлид кардани мавҷудияти матни воқеӣ ҷойгир карда шудааст . Ва ҳамаи ин танҳо барои он ки ба шумо тасаввурот диҳад, ки маслиҳатҳои асбобҳо ҳангоми истифода дар ҳолатҳои воқеӣ чӣ гуна хоҳанд буд. Пас, умедворем, ки шумо ҳоло дидед, ки чӣ гуна ин маслиҳатҳо оид ба истинодҳо , вақте ки шумо онҳоро дар сайт ё лоиҳаи худ истифода мекунед, дар амал кор карда метавонанд .
Барои дидани чор самти маслиҳатҳои асбобҳо: боло, рост, поён ва чапро ба болои тугмаҳои зер кашед. Ҳангоми истифодаи Bootstrap дар RTL, дастурҳо инъикос карда мешаванд.
<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:
Сасс
Тағйирёбандаҳо
$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;
Истифода
Васлкунаки асбобҳо мундариҷа ва аломатҳоро мувофиқи дархост тавлид мекунад ва ба таври нобаёнӣ маслиҳатҳои абзорро пас аз унсури триггери худ ҷойгир мекунад.
Маслиҳати абзорро тавассути JavaScript фаъол созед:
var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, options)
Зиёд auto
ваscroll
Мавқеи маслиҳати асбобҳо кӯшиш мекунад, ки ҳангоми доштани контейнери волидайнoverflow: auto
ё ба overflow: scroll
мо монанд ба таври худкор тағир ёбад .table-responsive
, аммо ба ҳар ҳол мавқеи ҷойгиршавии аслиро нигоҳ медорад. Барои ҳалли ин, boundary
параметрро (барои тағирдиҳандаи флип бо истифода аз popperConfig
опсия) ба ҳама гуна HTMLElement таъин кунед, то арзиши пешфарзро аз назар гузаронад '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
атрибут интерактивӣ нестанд, яъне корбарон наметавонанд диққати худро ба он ҷо оваранд ё клик кунанд, то маслиҳати абзорро (ё popover) оғоз кунанд. Ҳамчун як роҳи ҳал, шумо мехоҳед, ки маслиҳати абзорро аз парпеч ё бо истифода <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 ба kebab-case иваз кунед. Масалан, ба ҷои истифодаи data-bs-customClass="beautifier"
, истифода баред data-bs-custom-class="beautifier"
.
sanitize
,
sanitizeFn
, ва
allowList
опсияҳоро бо истифода аз атрибутҳои додаҳо таъмин кардан мумкин нест.
Ном | Навъи | Пешфарз | Тавсифи |
---|---|---|---|
animation |
булӣ | true |
Гузариши пажмурдашудаи CSS-ро ба маслиҳати абзор татбиқ кунед |
container |
сатр | элемент | дурӯғ | false |
Маслиҳати абзорро ба унсури мушаххас замима мекунад. Мисол: |
delay |
рақам | объект | 0 |
Таъхири нишон додан ва пинҳон кардани маслиҳати асбобҳо (ms) - ба намуди триггери дастӣ дахл надорад Агар рақам дода шавад, таъхир барои ҳарду пинҳон/нишон дода мешавад Сохтори объект ин аст: |
html |
булӣ | false |
Дар маслиҳати асбобҳо ба HTML иҷозат диҳед. Агар дуруст бошад, барчаспҳои HTML дар маслиҳати асбобҳо дар маслиҳати абзор Агар шумо аз ҳамлаҳои XSS хавотир бошед, матнро истифода баред. |
placement |
сатр | функсия | 'top' |
Маслиҳати абзорро чӣ гуна ҷойгир кардан мумкин аст - auto | боло | поён | чап | рост. Вақте ки функсия барои муайян кардани ҷойгиркунӣ истифода мешавад, он бо гиреҳи асбоби DOM ҳамчун аргументи аввал ва унсури триггери DOM гиреҳи дуюм номида мешавад. Контекст |
selector |
сатр | дурӯғ | false |
Агар интихобкунанда таъмин карда шавад, объектҳои маслиҳати асбобҳо ба ҳадафҳои муқарраршуда дода мешаванд. Дар амал, ин барои татбиқи маслиҳатҳои асбобҳо ба унсурҳои динамикӣ иловашудаи DOM ( jQuery.on дастгирӣ) истифода мешавад. Ин ва мисоли иттилоотиро бубинед . |
template |
сатр | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
Асоси HTML барои истифода ҳангоми сохтани маслиҳати абзор. Маслиҳатҳои асбобҳо
Элементи сарпӯши берунӣ бояд |
title |
сатр | элемент | функсия | '' |
Қимати унвони пешфарз, агар Агар функсия дода шавад, он бо |
trigger |
сатр | 'hover focus' |
Чӣ тавр маслиҳати асбобҳо фаъол карда мешавад - клик | овезон | таваҷҷӯҳ | дастур. Шумо метавонед якчанд триггерҳоро гузаронед; онҳоро бо фосила ҷудо кунед.
|
fallbackPlacements |
массив | ['top', 'right', 'bottom', 'left'] |
Ҷойгиркунии такрориро тавассути пешниҳоди рӯйхати ҷойгиркунӣ дар массив муайян кунед (бо тартиби афзалият). Барои маълумоти бештар ба ҳуҷҷатҳои рафтори Поппер муроҷиат кунед |
boundary |
сатр | элемент | 'clippingParents' |
Сарҳади маҳдудияти изофабори маслиҳати абзор (танҳо ба тағирдиҳандаи preventOverflow-и Поппер дахл дорад). Бо нобаёнӣ он аст 'clippingParents' ва метавонад истинодҳои HTMLElement-ро қабул кунад (танҳо тавассути JavaScript). Барои маълумоти бештар ба ҳуҷҷатҳои detectOverflow Popper муроҷиат кунед . |
customClass |
сатр | функсия | '' |
Вақте ки он нишон дода мешавад, ба маслиҳати асбобҳо синфҳоро илова кунед. Дар хотир доред, ки ин синфҳо ба ғайр аз ҳама синфҳои дар қолаб нишондодашуда илова карда мешаванд. Барои илова кардани якчанд синфҳо, онҳоро бо фосила ҷудо кунед: Шумо инчунин метавонед функсияеро гузаронед, ки бояд як сатри ягонаи дорои номҳои синфҳои иловагиро баргардонад. |
sanitize |
булӣ | true |
Санитаризатсияро фаъол ё ғайрифаъол кунед. Агар фаъол карда шавад 'template' ва 'title' вариантҳо безарар карда мешаванд. Бахши безараргардониро дар ҳуҷҷатҳои JavaScript- и мо бубинед . |
allowList |
объект | Арзиши пешфарз | Объект, ки дорои атрибутҳо ва барчаспҳои иҷозатдодашуда мебошад |
sanitizeFn |
null | функсия | null |
Дар ин ҷо шумо метавонед функсияи тозакунии худро таъмин кунед. Ин метавонад муфид бошад, агар шумо мехоҳед китобхонаи махсусро барои анҷом додани санитаризатсия истифода баред. |
offset |
массив | сатр | функсия | [0, 0] |
Гузаронидани маслиҳати абзор нисбат ба ҳадафаш. Шумо метавонед сатрро дар атрибутҳои додаҳо бо арзишҳои аз вергул ҷудошуда интиқол диҳед, ба монанди: Вақте ки функсия барои муайян кардани ҷуброн истифода мешавад, он бо объекте даъват карда мешавад, ки ҷойгиркунии поппер, истинод ва ректҳои попперро ҳамчун аргументи аввалини худ дорад. Элементи триггерии гиреҳи DOM ҳамчун далели дуюм интиқол дода мешавад. Функсия бояд массивро бо ду адад баргардонад: . Барои маълумоти бештар ба ҳуҷҷатҳои офсетии Поппер муроҷиат кунед . |
popperConfig |
null | объект | функсия | null |
Барои тағир додани конфигуратсияи пешфарзии Popper Bootstrap, ба конфигуратсияи Popper нигаред . Вақте ки функсия барои сохтани конфигуратсияи Popper истифода мешавад, он бо объекте даъват карда мешавад, ки конфигуратсияи пешфарзии Popper Bootstrap-ро дар бар мегирад. Он ба шумо кӯмак мекунад, ки пешфарзро бо конфигуратсияи шахсии худ истифода баред ва якҷоя кунед. Функсия бояд объекти конфигуратсияро барои Поппер баргардонад. |
Атрибутҳои маълумот барои маслиҳатҳои инфиродӣ
Имконот барои маслиҳатҳои инфиродӣ метавонанд ба таври алтернативӣ тавассути истифодаи атрибутҳои додаҳо, тавре ки дар боло шарҳ дода шуд, муайян карда шаванд.
Истифодаи функсия бо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()
гирифтани Instance
Усули статикӣ , ки ба шумо имкон медиҳад, ки мисоли абзореро, ки бо унсури 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
Ҳодисаҳо
Навъи ҳодиса | Тавсифи |
---|---|
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()