Asosiy tarkibga o'tish Hujjatlar navigatsiyasiga oʻtish
in English

Popoverlar

Saytingizdagi istalgan elementga iOS-da topilganlar kabi Bootstrap popoverlarini qo'shish uchun hujjatlar va misollar.

Umumiy koʻrinish

Popover plaginini ishlatishda bilishingiz kerak bo'lgan narsalar:

  • Popoverlar joylashishni aniqlash uchun uchinchi tomon kutubxonasi Popperga tayanadilar . Popoverlar ishlashi uchun bootstrap.js dan oldin popper.min.js ni qo'shishingiz yoki Popper o'z ichiga olgan bootstrap.bundle.min.js/ dan foydalanishingiz kerak !bootstrap.bundle.js
  • Popoverlar bog'liqlik sifatida asboblar paneli plaginini talab qiladi.
  • Popoverlar ishlash sabablariga ko'ra tanlanadi, shuning uchun ularni o'zingiz ishga tushirishingiz kerak .
  • Nol uzunlik titleva contentqiymatlar hech qachon popoverni ko'rsatmaydi.
  • container: 'body'Murakkabroq komponentlarda (masalan, kirish guruhlarimiz, tugma guruhlarimiz va h.k.) muammolarni keltirib chiqarmaslik uchun belgilang .
  • Yashirin elementlarda popoverlarni ishga tushirish ishlamaydi.
  • .disabledO'ram elementida yoki disabledelementlar uchun popoverlar ishga tushirilishi kerak.
  • Bir nechta chiziqlar bo'ylab o'ralgan langarlardan ishga tushirilganda, popoverlar langarlarning umumiy kengligi o'rtasida joylashgan bo'ladi. Ushbu xatti-harakatdan qochish .text-nowrapuchun s-da foydalaning.<a>
  • Tegishli elementlar DOMdan olib tashlanishidan oldin popoverlar yashirilishi kerak.
  • Popoverlar soyali DOM ichidagi element tufayli ishga tushirilishi mumkin.
Odatiy bo'lib, ushbu komponent o'rnatilgan kontentni tozalash vositasidan foydalanadi, bu aniq ruxsat etilmagan HTML elementlarini olib tashlaydi. Batafsil ma'lumot olish uchun JavaScript hujjatlaridagi dezinfektsiyalash bo'limiga qarang .
Ushbu komponentning animatsiya effekti prefers-reduced-motionmedia so'roviga bog'liq. Maxsus imkoniyatlar hujjatlarimizning qisqartirilgan harakat bo'limiga qarang .

Ba'zi misollar bilan popoverlar qanday ishlashini ko'rish uchun o'qishni davom eting.

Misol: hamma joyda popoverlarni yoqing

Sahifadagi barcha popoverlarni ishga tushirishning bir usuli ularni data-bs-toggleatributiga ko'ra tanlashdir:

var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
  return new bootstrap.Popover(popoverTriggerEl)
})

Misol: Variantdan containerfoydalanish

Agar sizda asosiy elementda popoverga xalaqit beradigan ba'zi uslublar mavjud bo'lsa container, popoverning HTML o'rniga ushbu element ichida paydo bo'lishi uchun maxsus belgilashni xohlaysiz.

var popover = new bootstrap.Popover(document.querySelector('.example-popover'), {
  container: 'body'
})

Misol

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

To'rt yo'nalish

To'rtta variant mavjud: yuqori, o'ng, pastki va chapga tekislangan. RTL-da Bootstrap-dan foydalanganda ko'rsatmalar aks ettiriladi.

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

Keyingi bosishda o'chirib qo'ying

Foydalanuvchi focusoʻzgartirish elementidan boshqa elementni keyingi bosganida popoverlarni oʻchirish uchun triggerdan foydalaning.

Keyingi chertishda o'chirish uchun maxsus belgi kerak

Brauzerlar va platformalararo to'g'ri xatti-harakatlar uchun siz tegdan emas, tegdan foydalanishingiz kerak <a>, shuningdek , <button>atributni ham kiritishingiz kerak tabindex.

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

O'chirilgan elementlar

Atributga ega boʻlgan elementlar disabledinteraktiv emas, yaʼni foydalanuvchilar qalqib chiquvchi (yoki asboblar maslahati)ni ishga tushirish uchun ularni sichqonchani koʻtarib yoki bosishlari mumkin emas. Vaqtinchalik yechim sifatida siz popoverni o‘ramdan ishga tushirishni <div>xohlaysiz .<span>tabindex="0"

O'chirilgan popover triggerlari uchun siz popover foydalanuvchilaringizga darhol vizual fikr-mulohaza sifatida ko'rinishini ham afzal ko'rishingiz mumkin, chunki ular o'chirilgan elementni bosishnidata-bs-trigger="hover focus" kutmasligi mumkin .

<span class="d-inline-block" tabindex="0" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-content="Disabled popover">
  <button class="btn btn-primary" type="button" disabled>Disabled button</button>
</span>

Sass

O'zgaruvchilar

$popover-font-size:                 $font-size-sm;
$popover-bg:                        $white;
$popover-max-width:                 276px;
$popover-border-width:              $border-width;
$popover-border-color:              rgba($black, .2);
$popover-border-radius:             $border-radius-lg;
$popover-inner-border-radius:       subtract($popover-border-radius, $popover-border-width);
$popover-box-shadow:                $box-shadow;

$popover-header-bg:                 shade-color($popover-bg, 6%);
$popover-header-color:              $headings-color;
$popover-header-padding-y:          .5rem;
$popover-header-padding-x:          $spacer;

$popover-body-color:                $body-color;
$popover-body-padding-y:            $spacer;
$popover-body-padding-x:            $spacer;

$popover-arrow-width:               1rem;
$popover-arrow-height:              .5rem;
$popover-arrow-color:               $popover-bg;

$popover-arrow-outer-color:         fade-in($popover-border-color, .05);

Foydalanish

JavaScript orqali popoverlarni yoqish:

var exampleEl = document.getElementById('example')
var popover = new bootstrap.Popover(exampleEl, options)

Klaviatura va yordamchi texnologiya foydalanuvchilari uchun popoverlarni ishlashga majbur qilish

Klaviatura foydalanuvchilariga popoverlaringizni faollashtirishga ruxsat berish uchun ularni faqat an'anaviy ravishda klaviaturaga qaratiladigan va interaktiv HTML elementlariga qo'shishingiz kerak (masalan, havolalar yoki shakl boshqaruvlari). O'zboshimchalik bilan HTML elementlarini (masalan, <span>s) tabindex="0"atribut qo'shish orqali diqqatni jamlash mumkin bo'lsa-da, bu klaviatura foydalanuvchilari uchun interaktiv bo'lmagan elementlarga potentsial bezovta qiluvchi va chalkash tab to'xtash joylarini qo'shadi va hozirda ko'pchilik yordamchi texnologiyalar bu vaziyatda popover tarkibini e'lon qilmaydi. . Bundan tashqari, faqat hoverpopoverlar uchun trigger sifatida ishonmang, chunki bu ularni klaviatura foydalanuvchilari uchun ishga tushirishni imkonsiz qiladi.

Opsiya bilan popoverlarga boy, tuzilgan HTMLni kiritishingiz mumkin bo‘lsa-da, htmlortiqcha miqdorda kontent qo‘shmaslikni tavsiya qilamiz. Popoverlarning hozirda ishlash usuli shundan iboratki, ko'rsatilgandan so'ng, ularning mazmuni atributli trigger elementiga aria-describedbybog'langan. Natijada, popoverning to'liq mazmuni yordamchi texnologiya foydalanuvchilariga bitta uzoq, uzluksiz oqim sifatida e'lon qilinadi.

Bundan tashqari, popoverga interaktiv boshqaruv elementlarini (masalan, shakl elementlari yoki havolalar) kiritish mumkin bo'lsa ham (ushbu elementlarni allowListruxsat etilgan atributlar va teglarga qo'shish orqali), shuni yodda tutingki, popover hozirda klaviatura fokus tartibini boshqara olmaydi. Klaviatura foydalanuvchisi qalqib chiquvchi tugmani ochganda, diqqat tetiklash elementida qoladi va popover odatda hujjat tuzilishidagi triggerni darhol kuzatib bormasligi sababli, oldinga siljish/bosish kafolati yo'q.TABklaviatura foydalanuvchisini popoverning o'ziga ko'chiradi. Muxtasar qilib aytganda, popoverga shunchaki interaktiv boshqaruv elementlarini qo'shish, ehtimol bu boshqaruvlarni klaviatura foydalanuvchilari va yordamchi texnologiyalar foydalanuvchilari uchun mavjud bo'lmagan/yaroqsiz holga keltirishi yoki hech bo'lmaganda mantiqsiz umumiy fokus tartibini yaratishi mumkin. Bunday hollarda modal dialogdan foydalanishni o'ylab ko'ring.

Variantlar

Variantlar ma'lumotlar atributlari yoki JavaScript orqali uzatilishi mumkin. Maʼlumotlar atributlari uchun opsiya nomini quyidagi data-bs-kabi qoʻshing data-bs-animation="". Variantlarni maʼlumotlar atributlari orqali oʻtkazishda optsion nomining registr turini camelCase’dan kabob-case’ga oʻzgartirishni unutmang. Misol uchun, dan foydalanish o'rniga data-bs-customClass="beautifier", foydalaning data-bs-custom-class="beautifier".

Esda tutingki, xavfsizlik nuqtai nazaridan sanitize, sanitizeFnva allowListopsiyalari maʼlumotlar atributlari yordamida taʼminlanishi mumkin emas.
Ism Turi Standart Tavsif
animation mantiqiy true Popoverga CSS o'tishini qo'llang
container string | element | yolg'on false

Popoverni ma'lum bir elementga qo'shadi. Misol: container: 'body'. Ushbu parametr, ayniqsa, foydalidir, chunki u sizga popoverni hujjat oqimida ishga tushirish elementi yaqinida joylashtirish imkonini beradi - bu oyna hajmini o'zgartirish vaqtida popoverning tetiklash elementidan uzoqlashishiga yo'l qo'ymaydi.

content string | element | funktsiyasi ''

data-bs-contentAtribut mavjud boʻlmasa, standart kontent qiymati .

Agar funktsiya berilsa, u thispopover biriktirilgan elementga mos yozuvlar to'plami bilan chaqiriladi.

delay raqam | ob'ekt 0

Popoverni ko'rsatish va yashirishni kechiktirish (ms) - qo'lda tetiklash turiga taalluqli emas

Agar raqam berilgan bo'lsa, kechikish ikkala yashirish/ko'rsatish uchun ham qo'llaniladi

Ob'ekt tuzilishi:delay: { "show": 500, "hide": 100 }

html mantiqiy false Popover-ga HTML-ni joylashtiring. Agar noto'g'ri bo'lsa, innerTextxususiyat DOMga kontent kiritish uchun ishlatiladi. XSS hujumlaridan xavotirda bo'lsangiz, matndan foydalaning.
placement string | funktsiyasi 'right'

Popoverni qanday joylashtirish mumkin - avtomatik | yuqori | pastki | chap | to'g'ri.
Belgilanganida auto, u popoverni dinamik ravishda o'zgartiradi.

Joylashuvni aniqlash uchun funktsiyadan foydalanilganda, u birinchi argument sifatida popover DOM tuguni va ikkinchi argument sifatida DOM tugunini ishga tushirish bilan chaqiriladi. thisKontekst popover misoliga o'rnatiladi .

selector string | yolg'on false Agar selektor taqdim etilsa, popover ob'ektlari belgilangan maqsadlarga topshiriladi. Amalda, bu dinamik HTML tarkibiga popoverlar qo'shilishi uchun ishlatiladi. Buni va ma'lumot beruvchi misolni ko'ring .
template ip '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'

Popover yaratishda foydalanish uchun asosiy HTML.

Popover ning titleichiga AOK qilinadi .popover-header.

Popover ning contentichiga AOK qilinadi .popover-body.

.popover-arrowpopoverning o'qiga aylanadi.

Eng tashqi o'rash elementi .popoversinfga ega bo'lishi kerak.

title string | element | funktsiyasi ''

Atribut mavjud bo'lmasa, birlamchi sarlavha qiymati title.

Agar funktsiya berilsa, u thispopover biriktirilgan elementga mos yozuvlar to'plami bilan chaqiriladi.

trigger ip 'click' Popover qanday ishga tushiriladi - | tugmasini bosing hover | diqqat | qo'llanma. Siz bir nechta triggerlardan o'tishingiz mumkin; ularni bo'sh joy bilan ajrating. manualboshqa trigger bilan birlashtirib bo'lmaydi.
fallbackPlacements massiv ['top', 'right', 'bottom', 'left'] Massivdagi joylashtirishlar roʻyxatini taqdim etish orqali zaxira joylashtirishlarni aniqlang (afzallik tartibida). Qo'shimcha ma'lumot olish uchun Popperning xatti-harakatlari hujjatlariga qarang
boundary string | element 'clippingParents' Popoverning haddan tashqari oqim chegarasi (faqat Popperning preventOverflow modifikatoriga tegishli). Odatiy bo'lib, u 'clippingParents'HTMLElement havolasini qabul qilishi mumkin (faqat JavaScript orqali). Qo'shimcha ma'lumot olish uchun Popperning detectOverflow hujjatlariga qarang .
customClass string | funktsiyasi ''

Popover ko'rsatilganda unga sinflarni qo'shing. E'tibor bering, bu sinflar shablonda ko'rsatilgan har qanday sinflarga qo'shimcha ravishda qo'shiladi. Bir nechta sinflarni qo'shish uchun ularni bo'sh joylar bilan ajrating: 'class-1 class-2'.

Bundan tashqari, qo'shimcha sinf nomlarini o'z ichiga olgan bitta satrni qaytarishi kerak bo'lgan funktsiyani o'tkazishingiz mumkin.

sanitize mantiqiy true Sanitizatsiyani yoqing yoki o'chiring. Agar faollashtirilsa 'template', opsiyalar tozalanadi 'content'. JavaScript hujjatlarimizdagi dezinfektsiyalash bo'limiga'title' qarang .
allowList ob'ekt Standart qiymat Ruxsat berilgan atributlar va teglarni o'z ichiga olgan ob'ekt
sanitizeFn null | funktsiyasi null Bu erda siz o'zingizning dezinfektsiyalash funksiyangizni taqdim etishingiz mumkin. Sanitizatsiyani amalga oshirish uchun maxsus kutubxonadan foydalanishni afzal ko'rsangiz, bu foydali bo'lishi mumkin.
offset massiv | string | funktsiyasi [0, 8]

Popoverning maqsadiga nisbatan ofseti. Siz qatorni vergul bilan ajratilgan ma'lumotlar atributlariga o'tkazishingiz mumkin, masalan:data-bs-offset="10,20"

Ofsetni aniqlash uchun funktsiyadan foydalanilganda, u birinchi argument sifatida popper joylashuvi, havola va popper rectsni o'z ichiga olgan ob'ekt bilan chaqiriladi. DOM tugunining ishga tushiruvchi elementi ikkinchi argument sifatida uzatiladi. Funktsiya ikkita raqamdan iborat massivni qaytarishi kerak: .[skidding, distance]

Qo'shimcha ma'lumot olish uchun Popperning ofset hujjatlariga qarang .

popperConfig null | ob'ekt | funktsiyasi null

Bootstrap-ning standart Popper konfiguratsiyasini o'zgartirish uchun Popper konfiguratsiyasiga qarang .

Popper konfiguratsiyasini yaratish uchun funktsiyadan foydalanilganda, u Bootstrap standart Popper konfiguratsiyasini o'z ichiga olgan ob'ekt bilan chaqiriladi. Bu standartni o'zingizning konfiguratsiyangiz bilan ishlatish va birlashtirishga yordam beradi. Funktsiya Popper uchun konfiguratsiya ob'ektini qaytarishi kerak.

Alohida popoverlar uchun ma'lumotlar atributlari

Yuqorida aytib o'tilganidek, individual popoverlar uchun variantlar ma'lumotlar atributlaridan foydalanish orqali belgilanishi mumkin.

Funktsiyadan foydalanishpopperConfig

var popover = new bootstrap.Popover(element, {
  popperConfig: function (defaultBsPopperConfig) {
    // var newPopperConfig = {...}
    // use defaultBsPopperConfig if needed...
    // return newPopperConfig
  }
})

Usullari

Asinxron usullar va o'tishlar

Barcha API usullari asenkron va o'tishni boshlaydi . O'tish boshlanishi bilanoq, lekin tugashidan oldin ular qo'ng'iroq qiluvchiga qaytadilar . Bundan tashqari, o'tish komponentidagi usul chaqiruvi e'tiborga olinmaydi .

Qo'shimcha ma'lumot olish uchun bizning JavaScript hujjatlariga qarang .

ko'rsatish

Elementning popoverini ko'rsatadi. Qo'ng'iroq qiluvchiga popover haqiqatda ko'rsatilishidan oldin (ya'ni shown.bs.popovervoqea sodir bo'lishidan oldin) qaytadi. Bu popoverning "qo'lda" ishga tushirilishi hisoblanadi. Sarlavhasi va mazmuni nol uzunlikdagi popoverlar hech qachon ko'rsatilmaydi.

myPopover.show()

yashirish

Elementning qalqib chiquvchi oynasini yashiradi. Qo'ng'iroq qiluvchiga popover yashirin bo'lishidan oldin (ya'ni hidden.bs.popovervoqea sodir bo'lishidan oldin) qaytadi. Bu popoverning "qo'lda" ishga tushirilishi hisoblanadi.

myPopover.hide()

almashtirish

Elementning qalqib chiquvchi oynasini almashtiradi. Qo'ng'iroq qiluvchiga popover haqiqatda ko'rsatilishi yoki yashirilishidan oldin (ya'ni shown.bs.popoveryoki hidden.bs.popoverhodisa sodir bo'lishidan oldin) qaytadi. Bu popoverning "qo'lda" ishga tushirilishi hisoblanadi.

myPopover.toggle()

tasarruf qilish

Elementning popoverini yashiradi va yo'q qiladi (DOM elementida saqlangan ma'lumotlarni o'chiradi). Delegatsiyadan foydalanadigan popoverlarni ( opsiya yordamida yaratilgan )selector nasl trigger elementlarida alohida yo‘q qilib bo‘lmaydi.

myPopover.dispose()

yoqish

Elementning popoverini ko'rsatish imkoniyatini beradi. Popovers sukut bo'yicha yoqilgan.

myPopover.enable()

o'chirish

Elementning qalqib chiquvchisini ko'rsatish imkoniyatini olib tashlaydi. Popover faqat qayta yoqilgan bo'lsa, ko'rsatilishi mumkin bo'ladi.

myPopover.disable()

toggleEnabled

Element popoverini ko‘rsatish yoki yashirish imkoniyatini o‘zgartiradi.

myPopover.toggleEnabled()

yangilash

Elementning qalqib chiquvchi joylashuvini yangilaydi.

myPopover.update()

getInstance

DOM elementi bilan bog'langan popover misolini olish imkonini beruvchi statik usul

var exampleTriggerEl = document.getElementById('example')
var popover = bootstrap.Popover.getInstance(exampleTriggerEl) // Returns a Bootstrap popover instance

getOrCreateInstance

DOM elementi bilan bog'langan popover misolini olish yoki agar u ishga tushirilmagan bo'lsa, yangisini yaratish imkonini beruvchi statik usul

var exampleTriggerEl = document.getElementById('example')
var popover = bootstrap.Popover.getOrCreateInstance(exampleTriggerEl) // Returns a Bootstrap popover instance

Voqealar

Tadbir turi Tavsif
show.bs.popover Ushbu hodisa showmisol usuli chaqirilganda darhol ishga tushadi.
ko'rsatilgan.bs.popover Ushbu hodisa popover foydalanuvchiga ko'rinadigan qilib qo'yilganda ishga tushiriladi (CSS o'tishlari tugashini kutadi).
hide.bs.popover Ushbu hodisa hidemisol usuli chaqirilganda darhol o'chiriladi.
hidden.bs.popover Ushbu hodisa popover foydalanuvchidan yashirishni tugatgandan so'ng ishga tushiriladi (CSS o'tishlari tugashini kutadi).
kiritilgan.bs.popover Ushbu hodisa show.bs.popoverDOMga popover shablonini qo'shgandan so'ng o'chiriladi.
var myPopoverTrigger = document.getElementById('myPopover')
myPopoverTrigger.addEventListener('hidden.bs.popover', function () {
  // do something...
})