in English

Поповерс

Документација и примери за додавање искачућих приказа за Боотстрап, попут оних у иОС-у, на било који елемент на вашој веб локацији.

Преглед

Ствари које треба знати када користите додатак за попове:

  • Поповерс се ослањају на Поппер библиотеку треће стране за позиционирање. Морате укључити поппер.мин.јс пре боотстрап.јс или користити bootstrap.bundle.min.js/ bootstrap.bundle.jsкоји садржи Поппер да би искачући елементи радили!
  • Поповерс захтевају додатак са описом алата као зависност.
  • Ако градите наш ЈаваСцрипт из извора, он захтеваutil.js .
  • Искачући бројеви су укључени из разлога перформанси, тако да их морате сами иницијализирати .
  • Нулта дужина titleи contentвредности никада неће приказати искакање.
  • Наведите container: 'body'да бисте избегли проблеме са приказивањем у сложенијим компонентама (као што су наше групе за унос, групе дугмади, итд.).
  • Покретање искачућих приказа на скривеним елементима неће радити.
  • Искачући прозори за .disabledили disabledелементе морају бити покренути на елементу омотача.
  • Када се активирају из сидра која се премотају преко више линија, искачући прикази ће бити центрирани између укупне ширине сидра. Користите .text-nowrapна свом <a>с да бисте избегли ово понашање.
  • Поповерс морају бити сакривени пре него што се њихови одговарајући елементи уклоне из ДОМ-а.
  • Поповерс се могу покренути захваљујући елементу унутар ДОМ-а у сенци.
Ова компонента подразумевано користи уграђену дезинфекцију садржаја, која уклања све ХТМЛ елементе који нису експлицитно дозвољени. За више детаља погледајте одељак са средством за дезинфекцију у нашој ЈаваСцрипт документацији .
Ефекат анимације ове компоненте зависи од prefers-reduced-motionмедијског упита. Погледајте одељак о смањеном покрету наше документације о приступачности .

Наставите да читате да бисте видели како искачући подаци раде са неким примерима.

Пример: Омогућите искачуће приказе свуда

Један од начина да се иницијализују сви искачући прозори на страници био би да их изаберете према њиховом data-toggleатрибуту:

$(function () {
  $('[data-toggle="popover"]').popover()
})

Пример: Коришћење containerопције

Када имате неке стилове на родитељском елементу који ометају искачући приказ, желећете да наведете прилагођени containerтако да се ХТМЛ искачућег елемента уместо тога појављује унутар тог елемента.

$(function () {
  $('.example-popover').popover({
    container: 'body'
  })
})

Пример

<button type="button" class="btn btn-lg btn-danger" data-toggle="popover" title="Popover title" data-content="And here's some amazing content. It's very engaging. Right?">Click to toggle popover</button>

Четири правца

Доступне су четири опције: горе, десно, доле и поравнато лево.

<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="top" data-content="Top popover">
  Popover on top
</button>
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="right" data-content="Right popover">
  Popover on right
</button>
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Bottom popover">
  Popover on bottom
</button>
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="left" data-content="Left popover">
  Popover on left
</button>

Одбаците следећи клик

Користите focusокидач да бисте одбацили искачуће прозоре приликом следећег клика корисника на елемент који се разликује од елемента за пребацивање.

Посебне ознаке потребне за одбацивање при следећем клику

За правилно понашање међу претраживачима и платформама, морате користити <a>ознаку, а не ознаку <button>, а такође морате укључити tabindexатрибут.

<a tabindex="0" class="btn btn-lg btn-danger" role="button" data-toggle="popover" data-trigger="focus" title="Dismissible popover" data-content="And here's some amazing content. It's very engaging. Right?">Dismissible popover</a>
$('.popover-dismiss').popover({
  trigger: 'focus'
})

Онемогућени елементи

Елементи са disabledатрибутом нису интерактивни, што значи да корисници не могу да пређу курсором или кликну на њих да би покренули искачући приказ (или опис алатке). Као заобилазно решење, желећете да покренете искачући прозор из омотача <div>или <span>и заобиђете pointer-eventsон дисаблед елемент.

За онемогућене окидаче искачућег приказа, можда ћете више волети data-trigger="hover"да се искачући прозор прикаже као непосредна визуелна повратна информација вашим корисницима јер можда не очекују да ће кликнути на онемогућени елемент.

<span class="d-inline-block" data-toggle="popover" data-content="Disabled popover">
  <button class="btn btn-primary" style="pointer-events: none;" type="button" disabled>Disabled button</button>
</span>

Употреба

Омогућите искачуће прозоре преко ЈаваСцрипт-а:

$('#example').popover(options)
ГПУ убрзање

Поповерс понекад изгледају мутно на Виндовс 10 уређајима због ГПУ убрзања и модификованог ДПИ система. Заобилазно решење за ово у в4 је да онемогућите ГПУ убрзање по потреби на искачућим прозорима.

Предложена поправка:

Popper.Defaults.modifiers.computeStyle.gpuAcceleration = !(window.devicePixelRatio < 1.5 && /Win/.test(navigator.platform))

Омогућите да искачући бројеви раде за кориснике тастатуре и помоћне технологије

Да бисте омогућили корисницима тастатуре да активирају искачуће елементе, требало би да их додате само у ХТМЛ елементе који су традиционално фокусирани на тастатуру и интерактивни (као што су везе или контроле обрасца). Иако произвољни ХТМЛ елементи (као што је <span>с) могу бити фокусирани додавањем tabindex="0"атрибута, ово ће додати потенцијално досадне и збуњујуће тачке табулатора на неинтерактивним елементима за кориснике тастатуре, а већина помоћних технологија тренутно не најављује садржај искачућег екрана у овој ситуацији . Поред тога, немојте се ослањати само на hoverокидач за ваше искачуће поруке, јер ће то онемогућити њихово покретање за кориснике тастатуре.

Иако можете да убаците богат, структуриран ХТМЛ у искачуће странице помоћу htmlопције, топло препоручујемо да избегавате додавање превелике количине садржаја. Начин на који искачући огласи тренутно функционишу је да је, када се једном прикажу, њихов садржај везан за елемент окидача са aria-describedbyатрибутом. Као резултат тога, цео садржај поповера биће објављен корисницима помоћне технологије као један дугачак, непрекидан ток.

Поред тога, иако је могуће укључити интерактивне контроле (као што су елементи обрасца или везе) у ваш искачући прозор (додавањем ових елемената у whiteListили дозвољене атрибуте и ознаке), имајте на уму да тренутно искачући прозор не управља редоследом фокуса тастатуре. Када корисник тастатуре отвори искачући елемент, фокус остаје на елементу за окидање, а пошто искачући део обично не следи одмах иза окидача у структури документа, нема гаранције да ће померање унапред/притиснутиTABће померити корисника тастатуре у сам искачући прозор. Укратко, једноставно додавање интерактивних контрола у искачући прозор ће вероватно учинити ове контроле недостижним/неупотребљивим за кориснике тастатуре и помоћне технологије, или ће у најмању руку створити нелогичан општи редослед фокуса. У овим случајевима размислите о коришћењу модалног дијалога.

Опције

Опције се могу пренети преко атрибута података или ЈаваСцрипт-а. За атрибуте података додајте име опције у data-, као у data-animation="".

Имајте на уму да се из безбедносних разлога опције sanitizeи не могу доставити помоћу атрибута података. sanitizeFnwhiteList
Име Тип Уобичајено Опис
анимација боолеан истинито Примените прелаз ЦСС фаде на искачући прозор
контејнер стринг | елемент | лажно лажно

Додаје искачући прозор одређеном елементу. Пример: container: 'body'. Ова опција је посебно корисна по томе што вам омогућава да позиционирате искачући део у току документа у близини покретачког елемента – што ће спречити да искачући део лебди од елемента за окидање током промене величине прозора.

садржаја стринг | елемент | функција ''

Подразумевана вредност садржаја ако data-contentатрибут није присутан.

Ако је дата функција, она ће бити позвана са својом thisреференцом постављеном на елемент за који је повезан искачући прозор.

кашњење број | објекат 0

Одлагање приказивања и сакривања искачућег екрана (мс) – не примењује се на тип ручног окидача

Ако је наведен број, кашњење се примењује и на сакривање/прикажи

Структура објекта је:delay: { "show": 500, "hide": 100 }

хтмл боолеан лажно Уметните ХТМЛ у искачући прозор. Ако је нетачно, јКуери textметода ће се користити за уметање садржаја у ДОМ. Користите текст ако сте забринути због КССС напада.
постављање стринг | функција 'јел тако'

Како поставити поповер - ауто | врх | боттом | лево | јел тако.
Када autoје наведено, динамички ће преусмерити искачући прозор.

Када се функција користи за одређивање положаја, она се позива са искачућим ДОМ чвором као првим аргументом и покретачким елементом ДОМ чвором као другим. Контекст thisје постављен на инстанцу искачућег приказа.

селектор стринг | лажно лажно Ако је обезбеђен селектор, искачући објекти ће бити делегирани наведеним циљевима. У пракси, ово се користи да би се омогућило додавање искачућих садржаја динамичком ХТМЛ садржају. Погледајте ово и информативни пример .
шаблон низ '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'

Основни ХТМЛ који се користи приликом креирања искачућег прозора.

Поповер'с titleће бити убризган у .popover-header.

Поповер'с contentће бити убризган у .popover-body.

.arrowпостаће поповерова стрела.

Најудаљенији елемент омотача треба да има .popoverкласу.

наслов стринг | елемент | функција ''

Подразумевана вредност наслова ако titleатрибут није присутан.

Ако је дата функција, она ће бити позвана са својом thisреференцом постављеном на елемент за који је повезан искачући прозор.

Окидач низ 'кликни' Како се поповер покреће - кликните | ховер | фокус | упутство. Можете проследити више покретача; одвојите их размаком. manualне може се комбиновати ни са једним другим окидачем.
офсет број | низ 0 Померање искачућег приказа у односу на циљ. За више информација погледајте Попперове офсет документе .
фаллбацкПлацемент стринг | низ 'флип' Дозволите да одредите коју позицију ће Поппер користити на резервном. За више информација погледајте документе о понашању Поппера
цустомЦласс стринг | функција ''

Додајте класе искачућем прозору када се прикаже. Имајте на уму да ће ове класе бити додате поред свих класа наведених у шаблону. Да бисте додали више класа, раздвојите их размацима: 'a b'.

Такође можете проследити функцију која треба да врати један стринг који садржи додатна имена класа.

граница стринг | елемент 'сцроллПарент' Граница ограничења прелива искачућег екрана. Прихвата вредности 'viewport', 'window', 'scrollParent', или референце ХТМЛЕлемента (само ЈаваСцрипт). За више информација погледајте Поппер'с превентОверфлов документе .
оцистити боолеан истинито Омогућите или онемогућите дезинфекцију. Ако је активирано 'template', 'content'и 'title'опције ће бити саниране. Погледајте одељак за дезинфекцију у нашој ЈаваСцрипт документацији .
вхитеЛист објекат Задана вриједност Објекат који садржи дозвољене атрибуте и ознаке
санитизеФн нулл | функција нула Овде можете обезбедити сопствену функцију дезинфекције. Ово може бити корисно ако више волите да користите наменску библиотеку за дезинфекцију.
попперЦонфиг нулл | објекат нула Да бисте променили Боотстрап-ову подразумевану Поппер конфигурацију, погледајте Поппер-ову конфигурацију

Атрибути података за појединачне искачуће

Опције за појединачне искачуће опције могу се алтернативно специфицирати коришћењем атрибута података, као што је горе објашњено.

Методе

Асинхроне методе и прелази

Све АПИ методе су асинхроне и покрећу транзицију . Они се враћају позиваоцу чим се транзиција започне, али пре него што се заврши . Поред тога, позив методе за прелазну компоненту биће занемарен .

Погледајте нашу ЈаваСцрипт документацију за више информација .

$().popover(options)

Иницијализује искачуће прозоре за колекцију елемената.

.popover('show')

Открива искачући приказ елемента. Враћа позиваоцу пре него што је искачући део заиста приказан (тј. пре него што се shown.bs.popoverдогађај деси). Ово се сматра „ручним“ покретањем искачућег екрана. Скочни прозори чији су наслов и садржај нулте дужине се никада не приказују.

$('#element').popover('show')

.popover('hide')

Сакрива искачући прозор елемента. Враћа позиваоцу пре него што је искачући део заиста сакривен (тј. пре него што се hidden.bs.popoverдогађај деси). Ово се сматра „ручним“ покретањем искачућег екрана.

$('#element').popover('hide')

.popover('toggle')

Пребацује искачући прозор елемента. Враћа позиваоцу пре него што је искачући део заиста приказан или сакривен (тј. пре него што се деси догађај shown.bs.popoverили ). hidden.bs.popoverОво се сматра „ручним“ покретањем искачућег екрана.

$('#element').popover('toggle')

.popover('dispose')

Сакрива и уништава искачући прозор елемента. Скочни прозори који користе делегирање (који се креирају помоћу опције selector) не могу се појединачно уништити на елементима окидача потомака.

$('#element').popover('dispose')

.popover('enable')

Даје могућност да се искачући део елемента прикаже. Поповерс су подразумевано омогућени.

$('#element').popover('enable')

.popover('disable')

Уклања могућност да се искачући прозор елемента прикаже. Поповер ће моћи да се прикаже само ако је поново омогућен.

$('#element').popover('disable')

.popover('toggleEnabled')

Укључује могућност да се искачући прозор елемента прикаже или сакрије.

$('#element').popover('toggleEnabled')

.popover('update')

Ажурира позицију искачућег екрана елемента.

$('#element').popover('update')

Догађаји

Тип догађаја Опис
схов.бс.поповер Овај догађај се покреће одмах када showсе позове метод инстанце.
приказано.бс.поповер Овај догађај се покреће када искачући прозор постане видљив кориснику (сачекаће да се ЦСС транзиције доврше).
хиде.бс.поповер Овај догађај се покреће одмах када hideсе позове метод инстанце.
хидден.бс.поповер Овај догађај се покреће када се искачући прозор заврши са сакривањем од корисника (сачекаће да се ЦСС транзиције доврше).
инсертед.бс.поповер Овај догађај се покреће након show.bs.popoverдогађаја када је шаблон за искакање додат у ДОМ.
$('#myPopover').on('hidden.bs.popover', function () {
  // do something...
})