Гузаштан ба мундариҷаи асосӣ Ба новбари ҳуҷҷатҳо гузаред
in English

Маслиҳатҳо

Ҳуҷҷатҳо ва мисолҳо барои илова кардани маслиҳатҳои фармоишии 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 сояҳо фаъол кардан мумкин аст.
Бо нобаёнӣ, ин ҷузъ аз безараргардонии мундариҷаи дарунсохт истифода мебарад, ки ҳама унсурҳои HTML-ро, ки ба таври возеҳ иҷозат дода нашудаанд, хориҷ мекунад. Барои тафсилоти бештар ба бахши санитаризатсия дар ҳуҷҷатҳои JavaScript-и мо нигаред.
Таъсири аниматсияи ин ҷузъ аз 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

Маслиҳати абзорро ба унсури мушаххас замима мекунад. Мисол: container: 'body'. Ин хосият махсусан аз он сабаб муфид аст, ки он ба шумо имкон медиҳад, ки маслиҳати абзорро дар ҷараёни ҳуҷҷат дар наздикии унсури триггер ҷойгир кунед - ин имкон медиҳад, ки маслиҳати абзор ҳангоми тағир додани андозаи равзана аз шиноварӣ аз элементи триггер пешгирӣ кунад.

delay рақам | объект 0

Таъхири нишон додан ва пинҳон кардани маслиҳати асбобҳо (ms) - ба намуди триггери дастӣ дахл надорад

Агар рақам дода шавад, таъхир барои ҳарду пинҳон/нишон дода мешавад

Сохтори объект ин аст:delay: { "show": 500, "hide": 100 }

html булӣ false

Дар маслиҳати асбобҳо ба HTML иҷозат диҳед.

Агар дуруст бошад, барчаспҳои HTML дар маслиҳати асбобҳо дар маслиҳати абзор titleнишон дода мешаванд. Агар дурӯғ бошад, innerTextамвол барои ворид кардани мундариҷа ба DOM истифода мешавад.

Агар шумо аз ҳамлаҳои XSS хавотир бошед, матнро истифода баред.

placement сатр | функсия 'top'

Маслиҳати абзорро чӣ гуна ҷойгир кардан мумкин аст - auto | боло | поён | чап | рост.
Вақте autoки муайян карда мешавад, он нӯги асбобро ба таври динамикӣ тағир медиҳад.

Вақте ки функсия барои муайян кардани ҷойгиркунӣ истифода мешавад, он бо гиреҳи асбоби DOM ҳамчун аргументи аввал ва унсури триггери DOM гиреҳи дуюм номида мешавад. Контекст thisба мисоли абзор гузошта шудааст.

selector сатр | дурӯғ false Агар интихобкунанда таъмин карда шавад, объектҳои маслиҳати асбобҳо ба ҳадафҳои муқарраршуда дода мешаванд. Дар амал, ин барои татбиқи маслиҳатҳои асбобҳо ба унсурҳои динамикӣ иловашудаи DOM ( jQuery.onдастгирӣ) истифода мешавад. Ин ва мисоли иттилоотиро бубинед .
template сатр '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'

Асоси HTML барои истифода ҳангоми сохтани маслиҳати абзор.

Маслиҳатҳои асбобҳо titleба .tooltip-inner.

.tooltip-arrowтирчаи банди асбобҳо мегардад.

Элементи сарпӯши берунӣ бояд .tooltipсинф ва role="tooltip".

title сатр | элемент | функсия ''

Қимати унвони пешфарз, агар titleатрибут мавҷуд набошад.

Агар функсия дода шавад, он бо thisмаҷмӯи истинод ба элементе, ки маслиҳати абзор ба он замима шудааст, даъват карда мешавад.

trigger сатр 'hover focus'

Чӣ тавр маслиҳати асбобҳо фаъол карда мешавад - клик | овезон | таваҷҷӯҳ | дастур. Шумо метавонед якчанд триггерҳоро гузаронед; онҳоро бо фосила ҷудо кунед.

'manual'нишон медиҳад, ки маслиҳати абзор ба таври барномавӣ тавассути .show(), .hide()ва .toggle()усулҳо фаъол карда мешавад; ин арзишро бо ягон триггери дигар муттаҳид кардан мумкин нест.

'hover'худ аз худ ба маслиҳатҳои абзор оварда мерасонад, ки онҳоро тавассути клавиатура фаъол кардан ғайриимкон аст ва танҳо дар сурати мавҷуд будани усулҳои алтернативии интиқоли як маълумот барои корбарони клавиатура истифода мешавад.

fallbackPlacements массив ['top', 'right', 'bottom', 'left'] Ҷойгиркунии такрориро тавассути пешниҳоди рӯйхати ҷойгиркунӣ дар массив муайян кунед (бо тартиби афзалият). Барои маълумоти бештар ба ҳуҷҷатҳои рафтори Поппер муроҷиат кунед
boundary сатр | элемент 'clippingParents' Сарҳади маҳдудияти изофабори маслиҳати абзор (танҳо ба тағирдиҳандаи preventOverflow-и Поппер дахл дорад). Бо нобаёнӣ он аст 'clippingParents'ва метавонад истинодҳои HTMLElement-ро қабул кунад (танҳо тавассути JavaScript). Барои маълумоти бештар ба ҳуҷҷатҳои detectOverflow Popper муроҷиат кунед .
customClass сатр | функсия ''

Вақте ки он нишон дода мешавад, ба маслиҳати асбобҳо синфҳоро илова кунед. Дар хотир доред, ки ин синфҳо ба ғайр аз ҳама синфҳои дар қолаб нишондодашуда илова карда мешаванд. Барои илова кардани якчанд синфҳо, онҳоро бо фосила ҷудо кунед: 'class-1 class-2'.

Шумо инчунин метавонед функсияеро гузаронед, ки бояд як сатри ягонаи дорои номҳои синфҳои иловагиро баргардонад.

sanitize булӣ true Санитаризатсияро фаъол ё ғайрифаъол кунед. Агар фаъол карда шавад 'template'ва 'title'вариантҳо безарар карда мешаванд. Бахши безараргардониро дар ҳуҷҷатҳои JavaScript- и мо бубинед .
allowList объект Арзиши пешфарз Объект, ки дорои атрибутҳо ва барчаспҳои иҷозатдодашуда мебошад
sanitizeFn null | функсия null Дар ин ҷо шумо метавонед функсияи тозакунии худро таъмин кунед. Ин метавонад муфид бошад, агар шумо мехоҳед китобхонаи махсусро барои анҷом додани санитаризатсия истифода баред.
offset массив | сатр | функсия [0, 0]

Гузаронидани маслиҳати абзор нисбат ба ҳадафаш. Шумо метавонед сатрро дар атрибутҳои додаҳо бо арзишҳои аз вергул ҷудошуда интиқол диҳед, ба монанди:data-bs-offset="10,20"

Вақте ки функсия барои муайян кардани ҷуброн истифода мешавад, он бо объекте даъват карда мешавад, ки ҷойгиркунии поппер, истинод ва ректҳои попперро ҳамчун аргументи аввалини худ дорад. Элементи триггерии гиреҳи DOM ҳамчун далели дуюм интиқол дода мешавад. Функсия бояд массивро бо ду адад баргардонад: .[skidding, distance]

Барои маълумоти бештар ба ҳуҷҷатҳои офсетии Поппер муроҷиат кунед .

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()