Төп эчтәлеккә күчү Документлар навигациясенә күчү
Check
in English

Кораллар

CSS3 һәм JavaScript ярдәмендә Bootstrap коралларын өстәү өчен документлар һәм мисаллар, анимацияләр өчен CSS3 кулланып, җирле исем саклау өчен data-bs-атрибутлар.

Гомуми күзәтү

Кораллар плагинын кулланганда белергә кирәк нәрсәләр:

  • Кораллар позиция өчен өченче як китапханәсе Попперга таяналар . Сез моңа кадәр popper.min.jsbootstrap.js кертергә тиеш , яки bootstrap.bundle.min.jsPopper булганны кулланырга тиеш.
  • Кораллар эш башкару сәбәпле оптималь, шуңа күрә сез аларны үзегез башларга тиеш .
  • Нуль озынлыгы булган кораллар беркайчан да күрсәтелми.
  • container: 'body'Катлаулырак компонентларда проблемалар килеп чыкмасын өчен күрсәтегез (безнең кертү төркемнәре, төймә төркемнәре һ.б.).
  • Яшерен элементлардагы инструмент киңәшләре эшләмәячәк.
  • Электрон кораллар .disabledяки disabledэлементлар төрү элементында башланырга тиеш.
  • Берничә сызыкны үз эченә алган гиперштамалардан башлангач, корал киңәшләре үзәкләштереләчәк. Бу тәртиптән саклану өчен с-ларда white-space: nowrap;кулланыгыз .<a>
  • Кораллар тиешле элементлар DOMдан чыгарылганчы яшерелергә тиеш.
  • Кораллар DOM күләгәсе эчендәге элемент ярдәмендә башланырга мөмкин.

Барысы да бармы? Яхшы, әйдәгез аларның кайбер мисаллар белән ничек эшләвен карыйк.

Килешү буенча, бу компонент эчтәлекле санитизаторны куллана, ул ачыктан-ачык рөхсәт ителмәгән HTML элементларын юкка чыгара. Төгәлрәк мәгълүмат өчен безнең JavaScript документациясендә санитизатор бүлеген карагыз .
Бу компонентның анимация эффекты prefers-reduced-motionмедиа соравына бәйле. Безнең документларның кыскартылган хәрәкәт бүлеген карагыз .

Мисаллар

Корал киңәшләрен кушу

Aboveгарыда әйтелгәнчә, сез кулланганчы корал киңәшләрен башларга тиеш. Биттәге барлык корал инструкцияләрен башлап җибәрүнең бер ысулы - аларны data-bs-toggleатрибутлары буенча сайлау булыр иде:

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

Корал киңәшләрен карау өчен түбәндәге сылтамалар өстендә йөрегез:

Корал киңәшләре белән кайбер сылтамаларны күрсәтү өчен урын иясе тексты . Бу хәзер тутыручы гына, үтерүчеләр дә юк. Чын текстның булуын охшату өчен монда урнаштырылган эчтәлек . Realәм болар барысы да реаль дөнья ситуацияләрендә кулланылганда инструментлар ничек булачагы турында күзаллау өчен. Шуңа күрә сез сылтамалардагы бу инструментларның практикада ничек эшләвен күрдегез дип өметләнәм, аларны үз сайтыгызда яки проектта кулланганнан соң.

html
<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>
titleHTML яки data-bs-titleHTML'да кулланырга иренегез. Кайчан кулланылса, Поппер аны элемент күрсәтелгәндә titleавтоматик рәвештә алыштырачак .data-bs-title

Махсус кораллар

V5.2.0 өстәлде

Сез CSS үзгәрүчәннәрен кулланып, корал киңәшләренең тышкы кыяфәтен көйли аласыз . data-bs-custom-class="custom-tooltip"Без үзебезнең тышкы кыяфәтебезне киңәйтү өчен махсус класс куйдык һәм аны җирле CSS үзгәрүчене кире кагу өчен кулланабыз.

.custom-tooltip {
  --bs-tooltip-bg: var(--bs-primary);
}
html
<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>

Ectionsнәлеш

Дүрт коралның юнәлешен карау өчен астагы төймәләр өстенә басыгыз: өске, уң, аскы һәм сул. РТЛда Bootstrap кулланганда юнәлешләр чагылдырылган.

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

Customәм махсус HTML өстәлде:

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

SVG белән:

CSS

Variзгәрешләр

V5.2.0 өстәлде

Bootstrap үсешенең CSS үзгәрүчәнлеге алымы кысаларында, инструментлар хәзерге вакытта .tooltipкөчәйтелгән реальләштерү өчен җирле CSS үзгәрүләрен кулланалар. CSS үзгәрүчәннәре өчен кыйммәтләр Sass аша куела, шуңа күрә Sass көйләү дә ярдәм итә.

  --#{$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

Куллану

Кораллар плагины таләп буенча эчтәлек һәм билгеләр чыгара, һәм триггер элементыннан соң корал күрсәтмәләрен урнаштыра.

JavaScript аша корал киңәшен эшләгез:

const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
Ташу autoһәмscroll

Tooltip позициясе ата- аналар контейнеры бездә булганда overflow: autoяки overflow: scrollбездә булганда автоматик рәвештә үзгәрергә .table-responsiveтырыша, ләкин оригиналь урнаштыру позициясен саклый. Моны чишү өчен, boundaryопцияне (опцияне кулланып флип модификатор өчен popperConfig) теләсә нинди HTMLElement'ка килешенгән кыйммәтне кире кагу өчен куегыз 'clippingParents', мәсәлән document.body:

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

Билгеләү

Корал киңәше өчен кирәкле билгеләр - бары тик dataатрибут һәм titleHTML элементында сез кораллар булырга телисез. Корал киңәшенең ясалган билгесе бик гади, ләкин ул позиция таләп итә (килешү буенча, topплагин белән куелган).

Клавиатура һәм ярдәмче технология кулланучылар өчен инструментлар ясау

Сез традицион клавиатурага игътибарлы һәм интерактив булган HTML элементларына корал киңәшләрен өстәргә тиеш (сылтамалар яки форма белән идарә итү кебек). Характерлы HTML элементлары (мәсәлән <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".

html
<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>

Вариантлар

Вариантлар мәгълүмат атрибутлары яки JavaScript аша уза алганлыктан, сез опция исемен куша data-bs-аласыз data-bs-animation="{value}". Вариант исемен мәгълүмат атрибутлары аша үткәндә " camelCase " дан "kebab -case " га үзгәртегез. Мәсәлән, data-bs-custom-class="beautifier"урынына кулланыгыз data-bs-customClass="beautifier".

Bootstrap 5.2.0 мәгълүматларына караганда, барлык компонентлар эксперименталь сакланган мәгълүмат атрибутын хуплый, data-bs-configалар гади компонент конфигурациясен JSON сызыгы итеп урнаштыра ала. Элемент data-bs-config='{"delay":0, "title":123}'һәм data-bs-title="456"атрибутлар булганда, соңгы titleкыйммәт булачак 456һәм аерым мәгълүмат атрибутлары бирелгән кыйммәтләрне юкка чыгарачак data-bs-config. Моннан тыш, булган мәгълүмат атрибутлары JSON кебек кыйммәтләрне урнаштыра ала data-bs-delay='{"show":0,"hide":150}'.

Игътибар итегез, куркынычсызлык сәбәпләре аркасында sanitize, sanitizeFnһәм allowListвариантлар мәгълүмат атрибутлары ярдәмендә бирелә алмый.
Исем Тип Килешү Тасвирлау
allowList объект Килешенгән кыйммәт Рөхсәт ителгән атрибутлар һәм тэглар булган объект.
animation буле true Кораллар киңәшенә CSS сүнгән күчүне кулланыгыз.
boundary тезмә, элемент 'clippingParents' Коралның чиктән тыш чик чикләре (Попперның профилактикасы Оверфлоу модификаторына гына кагыла). Килешү буенча, ул 'clippingParents'һәм HTMLElement сылтамасын кабул итә ала (JavaScript аша гына). Күбрәк мәгълүмат өчен Popper's detectOverflow документларына мөрәҗәгать итегез .
container тезмә, элемент, ялган false Корал киңәшен билгеле бер элементка өсти. Мисал : container: 'body'. Бу вариант аеруча файдалы, чөнки ул инструментыгызны документ агымына триггер элементы янында урнаштырырга мөмкинлек бирә - бу тәрәзә размеры вакытында инструментның триггер элементыннан ераклашуына комачаулый.
customClass тезмә, функция '' Күрсәтелгәндә инструментыгызга дәресләр өстәгез. Игътибар итегез, бу класслар шаблонда күрсәтелгән теләсә нинди классларга өстәп өстәләчәк. Берничә класс өстәр өчен, аларны урыннар белән аерыгыз : 'class-1 class-2'. Сез шулай ук ​​өстәмә класс исемнәре булган бер сызыкны кайтарырга тиеш функцияне уза аласыз.
delay сан, объект 0 Корал күрсәтмәсен күрсәтү һәм яшерү (мс) - кул белән эшләнгән триггер төренә кагылмый. Әгәр сан бирелсә, яшерү / күрсәтү өчен тоткарлык кулланыла. Объект структурасы : delay: { "show": 500, "hide": 100 }.
fallbackPlacements массив ['top', 'right', 'bottom', 'left'] Массадагы урнаштыру исемлеген биреп, кире кайту урыннарын билгеләгез (өстенлек тәртибендә). Күбрәк мәгълүмат өчен Попперның тәртип документларына мөрәҗәгать итегез .
html буле false HTML корал коралында рөхсәт итегез. Дөрес булса, кораллар киңәшендәге HTML тэглары кораллар күрсәтмәсендә titleкүрсәтеләчәк. Ялган булса, innerTextмилек DOMга эчтәлек кертү өчен кулланылачак. XSS һөҗүмнәре турында борчылсагыз, текст кулланыгыз.
offset массив, тезмә, функция [0, 0] Максатына караганда кораллар оффеты. Сез мәгълүмат атрибутларында үтем белән аерылган кыйммәтләр белән уза аласыз : data-bs-offset="10,20". Офсетны билгеләү өчен функция кулланылганда, ул беренче аргумент буларак поппер урнаштыру, белешмәлек һәм поппер ректлары булган объект белән атала. Икенче аргумент буларак DOM төененең этәргеч элементы уза. Функция ике сан белән массивны кайтарырга тиеш: скидинг , дистанция . Күбрәк мәгълүмат өчен Попперның офсет документларына мөрәҗәгать итегез .
placement тезмә, функция 'top' Корал киңәшен ничек урнаштырырга: автомобиль, өске, аскы, сул, уң. Күрсәтелгәндә auto, ул кораллар динамикасын үзгәртәчәк. Урнаштыруны билгеләү өчен функция кулланылганда, ул беренче аргумент буларак DOM төен кораллары, икенчесе буларак DOM төенен җибәрү элементы дип атала. thisКонтекст кораллар инстанциясенә куелган .
popperConfig нуль, объект, функция null Bootstrap'ның default Popper конфигурациясен үзгәртү өчен, Popper конфигурациясен карагыз . Popper конфигурациясен булдыру өчен функция кулланылганда, ул Bootstrap'ның демократик Popper конфигурациясен үз эченә алган объект белән атала. Бу сиңа конфигурацияне кулланырга һәм берләштерергә ярдәм итә. Функция Popper өчен конфигурация объектын кайтарырга тиеш.
sanitize буле true Санитизацияне эшләтеп җибәрү яки сүндерү. Активлаштырылса 'template', 'content'вариантлар 'title'санитарлаштырылачак.
sanitizeFn нуль, функция null Монда сез үзегезнең санитария функциясен тәкъдим итә аласыз. Санитизация ясау өчен махсус китапханә кулланырга теләсәгез, бу файдалы булырга мөмкин.
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'башланачагын күрсәтә ; бу кыйммәтне башка триггер белән берләштереп булмый. үзеннән-үзе клавиатура аша эшләтеп булмый торган корал киңәшләренә китерәчәк, һәм клавиатура кулланучылары өчен бер үк мәгълүматны җиткерүнең альтернатив ысуллары булганда гына кулланырга кирәк..tooltip('show').tooltip('hide').tooltip('toggle')'hover'

Индивидуаль кораллар өчен мәгълүмат атрибутлары

Индивидуаль кораллар өчен вариантлар, югарыда аңлатылганча, мәгълүмат атрибутлары ярдәмендә альтернатив рәвештә күрсәтелергә мөмкин.

Белән функция куллануpopperConfig

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

Методлар

Асинхрон ысуллар һәм күчү

Барлык API ысуллары да асинхрон һәм күчү башлый . Күчерелеш башлангач, ләкин ул беткәнче шалтыратучыга кире кайталар . Моннан тыш, күчү компонентына методик чакыру игътибарсыз калачак .

Күбрәк мәгълүмат алу өчен безнең JavaScript документларын карагыз .

Метод Тасвирлау
disable Элементның корал күрсәтмәсен күрсәтү мөмкинлеген бетерә. Корал киңәше яңадан кушылган очракта гына күрсәтеләчәк.
dispose Элементның корал киңәшен яшерә һәм юкка чыгара (DOM элементында сакланган мәгълүматны бетерә). Делегацияне кулланган кораллар ( вариант ярдәмендә ясалганselector ) нәсел триггер элементларында аерым юк ителми.
enable Элементның кораллар күрсәтү сәләтен күрсәтә. Кораллар килешү буенча кушылган.
getInstance DOM элементы белән бәйләнгән корал инстанциясен алырга, яисә ул башланмаган очракта яңасын булдырырга мөмкинлек бирүче статик ысул.
getOrCreateInstance DOM элементы белән бәйләнгән корал инстанциясен алырга, яисә ул башланмаган очракта яңасын булдырырга мөмкинлек бирүче статик ысул.
hide Элемент коралын яшерә. Корал киңәше яшерелгәнче (ягъни hidden.bs.tooltipвакыйга булганчы) шалтыратучыга кире кайта. Бу корал күрсәтмәсенең “кул белән” этәргеч булып санала.
setContent Башлангач, коралның эчтәлеген үзгәртү ысулы бирә.
show Элемент коралын күрсәтә. Корал киңәше күрсәтелгәнче (ягъни shown.bs.tooltipвакыйга булганчы) шалтыратучыга кире кайта. Бу корал күрсәтмәсенең “кул белән” этәргеч булып санала. Нуль озынлыгы булган кораллар беркайчан да күрсәтелми.
toggle Элементның инструменты. Корал киңәше күрсәтелгән яки яшерелгәнче (ягъни вакыйга булганчы) шалтыратучыга кире кайта. Бу корал күрсәтмәсенең “кул белән” этәргеч булып санала.shown.bs.tooltiphidden.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 Бу вакыйга поповер кулланучыдан яшерелгәннән соң җибәрелә (CSS күчү тәмамлануын көтәр).
inserted.bs.tooltip Бу вакыйга show.bs.tooltipDOMга кораллар шаблоны өстәлгәннән соң җибәрелә.
show.bs.tooltip showБу вакыйга инстанция ысулы чакырылганда шунда ук янып тора .
shown.bs.tooltip Бу вакыйга кулланучыга күренгәннән соң (CSS күчү тәмамлануын көтеп торачак).
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)

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

tooltip.hide()