Popovers
Сайтыңыздагы каалаган элементке iOS'то табылгандар сыяктуу Bootstrap поповерлерин кошуу үчүн документтер жана мисалдар.
Обзор
Popover плагинин колдонууда билүү керек болгон нерселер:
- Поповерлер жайгаштыруу үчүн үчүнчү тараптын Поппер китепканасына таянышат . Сиз popper.min.js файлын bootstrap.js алдында камтышыңыз керек же попоперлер иштеши үчүн Popper камтылган
bootstrap.bundle.min.js
/ колдонушуңуз керек!bootstrap.bundle.js
- Popovers көз карандылык катары инструменттин плагинин талап кылат.
- Эгер сиз биздин JavaScript булактан куруп жатсаңыз, анда
util.js
. - Поповерлер майнаптуулугу үчүн кошулат, андыктан аларды өзүңүз башташыңыз керек .
- Нөл узундуктагы
title
жанаcontent
баалуулуктар эч качан калкып чыгууну көрсөтпөйт. container: 'body'
Татаалыраак компоненттерде (мисалы, киргизүү топторубуз, баскыч топторубуз ж.б.) көйгөйлөрдү жаратпаш үчүн белгилеңиз .- Жашыруун элементтерде поповерлерди иштетүү иштебейт.
.disabled
Үчүн жеdisabled
элементтер үчүн поповерлер орогуч элементинде иштетилиши керек.- Бир нече сызыктар боюнча оролгон анкерлерден иштетилгенде, поповерлер анкерлердин жалпы туурасынын ортосуна жайгаштырылат. Бул жүрүм-турумду болтурбоо үчүн
.text-nowrap
сиздин с боюнча колдонуңуз .<a>
- Поповерлер алардын тиешелүү элементтери DOMдан алынып салынганга чейин жашырылышы керек.
- Popovers көлөкө DOM ичиндеги элементтин аркасында иштетилиши мүмкүн.
prefers-reduced-motion
медиа суроосуна көз каранды. Биздин жеткиликтүүлүк документтерибиздин кыскартылган кыймыл бөлүмүн караңыз
.
Поповерлердин кээ бир мисалдар менен кантип иштээрин көрүү үчүн окууну улантыңыз.
Мисал: Бардык жерде поповерлерди иштетүү
Барактагы бардык поповерлерди инициализациялоонун бир жолу аларды data-toggle
атрибуту боюнча тандоо болот:
$(function () {
$('[data-toggle="popover"]').popover()
})
Мисал: container
Опцияны колдонуу
Ата-энелик элементте поповерге тоскоол болгон кээ бир стилдер болгондо, container
анын ордуна popover HTML'и ошол элементтин ичинде пайда болушу үчүн салтты белгилегиңиз келет.
$(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
Өчүрүлгөн popover триггерлери үчүн, сиз ошондой эле поповер колдонуучуларыңызга дароо визуалдык пикир катары көрүнүшүн кааласаңыз болот, анткени алар өчүрүлгөн элементти басууну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>
Колдонуу
JavaScript аркылуу поповерлерди иштетүү:
$('#example').popover(options)
GPU ылдамдатуу
Popovers кээде Windows 10 түзмөктөрүндө GPU тездетилишинен жана өзгөртүлгөн системанын DPIден улам бүдөмүк көрүнөт. V4 версиясында муну чечүү жолу - поповерлериңизде GPU тездетүүнү өчүрүү.
Сунушталган оңдоо:
Popper.Defaults.modifiers.computeStyle.gpuAcceleration = !(window.devicePixelRatio < 1.5 && /Win/.test(navigator.platform))
Клавиатура жана жардамчы технология колдонуучулары үчүн поповерлерди иштетүү
Баскычтоп колдонуучуларына поповерлериңизди активдештирүүсүнө уруксат берүү үчүн, сиз аларды салттуу түрдө клавиатурага багытталган жана интерактивдүү HTML элементтерине гана кошушуңуз керек (мисалы, шилтемелер же форманы башкаруу элементтери). Ылдыйкы HTML элементтерин (мисалы, <span>
s) tabindex="0"
атрибутун кошуу менен фокус кылса болот, бирок бул клавиатура колдонуучулары үчүн интерактивдүү эмес элементтерге потенциалдуу тажатма жана башаламан өтмөктөрдү кошот жана азыркы учурда көпчүлүк жардамчы технологиялар бул кырдаалда поповердин мазмунун жарыялабайт. . hover
Кошумчалай кетсек, поповерлериңиз үчүн триггер катары гана ишенбеңиз , анткени бул аларды клавиатура колдонуучулары үчүн ишке киргизүү мүмкүн эмес кылат.
Поповерлерге бай, структураланган HTML кыстарсаңыз да html
, ашыкча көлөмдөгү мазмунду кошуудан качууну сунуштайбыз. Учурда поповерлердин иштөө жолу - көрсөтүлгөндөн кийин, алардын мазмуну aria-describedby
атрибут менен триггер элементине байланган. Натыйжада, поповердин бүт мазмуну жардамчы технология колдонуучуларына бир узун, үзгүлтүксүз агым катары жарыяланат.
Кошумчалай кетсек, поповериңизге интерактивдүү башкаруу элементтерин (мисалы, форма элементтери же шилтемелер) кошууга мүмкүн болсо да (бул элементтерди whiteList
же уруксат берилген атрибуттарга жана тегдерге кошуу менен), учурда popover клавиатуранын фокус тартибин башкара албасын эске алыңыз. Баскычтоп колдонуучусу калкып чыгуучу элементти ачканда, фокус козгоочу элементте калат жана поповер адатта документтин түзүмүндөгү триггерди дароо ээрчип кетпегендиктен, алдыга жылдыруу/басууда кепилдик жок.TABклавиатуранын колдонуучусун поповердин өзүнө жылдырат. Кыскача айтканда, жөн гана интерактивдүү башкаруу элементтерин поповерге кошуу бул башкаруу элементтерин клавиатура колдонуучулары жана жардамчы технологияларды колдонуучулар үчүн жеткиликсиз/колдонууга жараксыз кылып коюшу мүмкүн, же жок дегенде логикага сыйбаган жалпы фокус тартибин түзүшү мүмкүн. Мындай учурларда, анын ордуна модалдык диалогду колдонууну карап көрөлү.
Параметрлер
Параметрлер маалымат атрибуттары же JavaScript аркылуу берилиши мүмкүн. Дайындардын атрибуттары үчүн параметрдин атын data-
, сыяктуу эле кошуңуз data-animation=""
.
sanitize
,
sanitizeFn
жана
whiteList
опцияларын маалымат атрибуттары менен камсыздоо мүмкүн эмес экенин эске алыңыз.
аты | Type | Демейки | Description |
---|---|---|---|
анимация | логикалык | чын | Калкыма файлга CSS өчүп өтүүнү колдонуңуз |
контейнер | string | элемент | жалган | жалган | Белгилүү бир элементке калкыма тиркелет. Мисал: |
мазмун | string | элемент | функция | '' |
Эгерде функция берилсе, ал |
кечиктирүү | саны | объект | 0 | Поповерди көрсөтүү жана жашыруу кечигүү (мс) - кол менен триггер түрүнө тиешелүү эмес Эгерде номер берилсе, кечиктирүү эки жашыруу/көрсөтүү үчүн колдонулат Объекттин структурасы: |
html | логикалык | жалган | HTMLди калкып чыгуучу жерге кыстарыңыз. Эгер жалган болсо, text DOMга мазмунду киргизүү үчүн jQuery ыкмасы колдонулат. XSS чабуулдарынан кооптонуп жатсаңыз, текстти колдонуңуз. |
жайгаштыруу | string | функция | "туура" | Поповерди кантип жайгаштыруу керек - авто | top | түбү | сол | туура. Функция жайгаштырууну аныктоо үчүн колдонулганда, ал биринчи аргумент катары popover DOM түйүнү жана экинчиси катары триггер элементи DOM түйүнү менен чакырылат. Контекст |
селектор | string | жалган | жалган | Эгер селектор берилсе, поповер объекттери көрсөтүлгөн максаттарга өткөрүлүп берилет. Иш жүзүндө, бул динамикалык HTML мазмунун поповерлерди кошууга иштетүү үчүн колдонулат. Бул жана маалыматтык мисалды караңыз . |
шаблон | сап | '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' |
Калкыма түзүүдө колдонула турган негизги HTML. поповердин поповердин
Эң сырткы ороочу элемент |
аталышы | string | элемент | функция | '' |
Эгерде функция берилсе, ал |
триггер | сап | 'басуу' | Поповер кантип иштетилет - чыкылдатыңыз | hover | фокус | колдонмо. Сиз бир нече триггерлерди өткөрө аласыз; аларды боштук менен ажыратыңыз. manual башка триггер менен айкалыштыруу мүмкүн эмес. |
офсет | саны | сап | 0 | Поповердин максатына салыштырмалуу жылышы. Көбүрөөк маалымат алуу үчүн Поппердин офсеттик документтерине кайрылыңыз . |
fallbackPlacement | string | массив | 'флип' | Поппер кайра кайтарууда кайсы позицияны колдоноорун көрсөтүүгө уруксат бериңиз. Көбүрөөк маалымат алуу үчүн Поппердин жүрүм-турум документтерине кайрылыңыз |
customClass | string | функция | '' | Көрсөткүчтөргө класстарды кошуңуз. Бул класстар шаблондо көрсөтүлгөн класстарга кошумча кошулаарын эске алыңыз. Бир нече класстарды кошуу үчүн аларды боштуктар менен бөлүңүз: Сиз ошондой эле кошумча класс атын камтыган бир сапты кайтара турган функцияны өткөрүп бере аласыз. |
чек ара | string | элемент | 'scrollParent' | Поповердин толуп кетүү чектөө чек арасы. 'viewport' , 'window' , 'scrollParent' , же HTMLElement шилтемесинин маанилерин кабыл алат (JavaScript гана). Көбүрөөк маалымат алуу үчүн Popper's preventOverflow docs караңыз . |
тазалоо | логикалык | чын | Санитизацияны иштетүү же өчүрүү. Эгер жандырылса 'template' , опциялар тазаланат 'content' . Биздин JavaScript документтерибиздин дезинфекциялоочу бөлүгүн'title' караңыз . |
ак тизме | объект | Демейки маани | Уруксат берилген атрибуттарды жана тегдерди камтыган объект |
sanitizeFn | null | функция | нөл | Бул жерде сиз өзүңүздүн дезинфекциялоо функциясын бере аласыз. Санитизациялоо үчүн атайын китепкананы колдонууну кааласаңыз, бул пайдалуу болушу мүмкүн. |
popperConfig | null | объект | нөл | Bootstrap демейки Popper конфигурациясын өзгөртүү үчүн Поппердин конфигурациясын караңыз |
Жеке поповерлер үчүн маалымат атрибуттары
Жеке поповерлердин параметрлери альтернатива катары жогоруда түшүндүрүлгөндөй, маалымат атрибуттарын колдонуу аркылуу көрсөтүлүшү мүмкүн.
Методдор
Асинхрондук методдор жана өтүүлөр
Бардык API ыкмалары асинхрондуу жана өтүүнү баштайт . Алар чалуучуга өтүү башталаары менен, бирок ал бүтө электе кайтып келишет . Кошумчалай кетсек, өтүүчү компоненттеги ыкма чакырыгы этибарга алынбайт .
Көбүрөөк маалымат алуу үчүн биздин JavaScript документтерибизди караңыз .
$().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')
Окуялар
Окуя түрү | Description |
---|---|
show.bs.popover | Бул окуя show инстанция ыкмасы чакырылганда дароо күйөт. |
show.bs.popover | Бул окуя поповер колдонуучуга көрүнгөндөн кийин өчүрүлөт (CSS өтүүлөрү аяктаганга чейин күтөт). |
hide.bs.popover | Бул окуя hide инстанция ыкмасы чакырылганда дароо өчүрүлөт. |
hidden.bs.popover | Бул окуя поповер колдонуучудан жашырылгандан кийин өчүрүлөт (CSS өтүүлөрү бүткүчө күтөт). |
inserted.bs.popover | Бул окуя show.bs.popover DOMга popover үлгүсү кошулгандан кийин өчүрүлөт. |
$('#myPopover').on('hidden.bs.popover', function () {
// do something...
})