Pereiti prie pagrindinio turinio Pereiti prie dokumentų naršymo
Check
in English

Popovers

Dokumentacija ir pavyzdžiai, kaip pridėti „Bootstrap“ iššokančių langų, pvz., „iOS“, prie bet kurio svetainės elemento.

Apžvalga

Ką reikia žinoti naudojant popover papildinį:

  • Popovers pozicionuojant remiasi trečiosios šalies biblioteka Popper . Turite įtraukti popper.min.js prieš bootstrap.js, arba naudoti tą bootstrap.bundle.min.js, kuriame yra Popper.
  • Iššokantiesiems reikalingas iššokančiojo įskiepio kaip priklausomybės.
  • Iššokantys langai pasirenkami dėl našumo priežasčių, todėl turite juos inicijuoti patys .
  • Nulinis ilgis titleir contentreikšmės niekada nerodys iššokimo.
  • Nurodykite container: 'body', kad išvengtumėte atvaizdavimo problemų sudėtingesniuose komponentuose (pvz., įvesties grupėse, mygtukų grupėse ir kt.).
  • Paslėptų elementų iššokančių langų suaktyvinimas neveiks.
  • Elementų .disabledarba disabledelementų iššokimai turi būti suaktyvinti apvyniojimo elemente.
  • Suaktyvinus iš inkarų, apvyniojančių kelias linijas, iššokantys langai bus sutelkti tarp bendro inkarų pločio. Naudokite .text-nowrapant savo <a>, kad išvengtumėte tokio elgesio.
  • Iššokantys langai turi būti paslėpti prieš pašalinant atitinkamus elementus iš DOM.
  • Iššokimas gali būti suaktyvintas dėl elemento šešėlinio DOM viduje.
Pagal numatytuosius nustatymus šis komponentas naudoja integruotą turinio valymo priemonę, kuri pašalina visus HTML elementus, kurie nėra aiškiai leidžiami. Norėdami gauti daugiau informacijos , žr. „JavaScript“ dokumentacijos valymo priemonių skyrių .
Šio komponento animacijos efektas priklauso nuo prefers-reduced-motionmedijos užklausos. Žr . mūsų pritaikymo neįgaliesiems dokumentacijos skyrių „Sumažintas judėjimas“ .

Skaitykite toliau, kad sužinotumėte, kaip veikia iššokantys langai su kai kuriais pavyzdžiais.

Pavyzdžiai

Įgalinti iššokančius langus

Kaip minėta pirmiau, prieš naudodami iššokančius langus turite inicijuoti. Vienas iš būdų inicijuoti visus puslapio iššokančius langus būtų pasirinkti juos pagal data-bs-toggleatributą, pvz.:

const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]')
const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl))

Tiesioginė demonstracija

Naudojame „JavaScript“, panašų į anksčiau pateiktą fragmentą, kad pateiktume šį tiesioginį iššokantįjį vaizdą. Pavadinimai nustatomi per, data-bs-titleo turinio turinys – per data-bs-content.

Nesivaržykite naudoti arba titlesavo data-bs-titleHTML. Kai titlenaudojamas, Popper jį automatiškai pakeis, data-bs-titlekai elementas bus pateiktas.
html
<button type="button" class="btn btn-lg btn-danger" data-bs-toggle="popover" data-bs-title="Popover title" data-bs-content="And here's some amazing content. It's very engaging. Right?">Click to toggle popover</button>

Keturios kryptys

Galimos keturios parinktys: viršuje, dešinėje, apačioje ir kairėje. Nurodymai rodomi naudojant „Bootstrap“ RTL. Nustatykite data-bs-placementkeisti kryptį.

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

Pasirinktiniscontainer

Kai pirminiame elemente yra tam tikrų stilių, kurie trukdo iššokimui, norėsite nurodyti tinkintą container, kad iššokančiojo elemento HTML būtų rodomas tame elemente. Tai įprasta reaguojančiose lentelėse, įvesties grupėse ir pan.

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

Kita situacija, kai norite nustatyti aiškų containertinkinimą, yra iššokantys langai modaliniame dialogo lange , siekiant užtikrinti, kad pats iššokantis langas būtų pridėtas prie modalo. Tai ypač svarbu iššokančiiesiems langams, kuriuose yra interaktyvių elementų – modaliniai dialogai sulaiko dėmesį, taigi, nebent iššokantis langas yra antrinis modalo elementas, vartotojai negalės sufokusuoti arba suaktyvinti šių interaktyvių elementų.

const popover = new bootstrap.Popover('.example-popover', {
  container: '.modal-body'
})

Individualūs iššokantys langai

Pridėta 5.2.0 versijoje

Galite tinkinti iššokančių langų išvaizdą naudodami CSS kintamuosius . Mes nustatome tinkintą klasę, data-bs-custom-class="custom-popover"kad apimtų mūsų tinkintą išvaizdą, ir naudojame ją kai kuriems vietiniams CSS kintamiesiems nepaisyti.

.custom-popover {
  --bs-popover-max-width: 200px;
  --bs-popover-border-color: var(--bs-primary);
  --bs-popover-header-bg: var(--bs-primary);
  --bs-popover-header-color: var(--bs-white);
  --bs-popover-body-padding-x: 1rem;
  --bs-popover-body-padding-y: .5rem;
}
html
<button type="button" class="btn btn-secondary"
        data-bs-toggle="popover" data-bs-placement="right"
        data-bs-custom-class="custom-popover"
        data-bs-title="Custom popover"
        data-bs-content="This popover is themed via CSS variables.">
  Custom popover
</button>

Atsisakyti kitą kartą spustelėjus

Naudokite focusaktyviklį, kad atsisakytumėte iššokančių langų, kai vartotojas kitą kartą spustelėja kitą elementą nei perjungimo elementas.

Norint atmesti spustelėjus kitą kartą, reikalingas konkretus žymėjimas

Norėdami tinkamai veikti įvairiose naršyklėse ir įvairiose platformose, turite naudoti <a>žymą, o ne<button> žymą, taip pat turite įtraukti tabindexatributą.

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

Išjungti elementai

Elementai su disabledatributu nėra interaktyvūs, o tai reiškia, kad naudotojai negali jų užvesti arba spustelėti, kad suaktyvintų iššokantįjį langą (arba patarimą). Kaip išeitis, norėsite suaktyvinti iššokimą iš paketo <div>arba <span>, idealiai sufokusuoti klaviatūrą naudodami tabindex="0".

Išjungus iškylančiojo lango aktyviklius taip pat galite pageidauti data-bs-trigger="hover focus", kad iššokantis langas būtų rodomas kaip tiesioginis vaizdinis grįžtamasis ryšys jūsų vartotojams, nes jie gali nesitikėti spustelėti išjungto elemento.

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

CSS

Kintamieji

Pridėta 5.2.0 versijoje

Kaip „Bootstrap“ besivystančio CSS kintamųjų metodo dalis, iššokantieji dabar naudoja vietinius CSS kintamuosius, .popoverkad būtų galima patobulinti tinkinimą realiuoju laiku. CSS kintamųjų reikšmės nustatomos naudojant Sass, todėl Sass tinkinimas vis dar palaikomas.

  --#{$prefix}popover-zindex: #{$zindex-popover};
  --#{$prefix}popover-max-width: #{$popover-max-width};
  @include rfs($popover-font-size, --#{$prefix}popover-font-size);
  --#{$prefix}popover-bg: #{$popover-bg};
  --#{$prefix}popover-border-width: #{$popover-border-width};
  --#{$prefix}popover-border-color: #{$popover-border-color};
  --#{$prefix}popover-border-radius: #{$popover-border-radius};
  --#{$prefix}popover-inner-border-radius: #{$popover-inner-border-radius};
  --#{$prefix}popover-box-shadow: #{$popover-box-shadow};
  --#{$prefix}popover-header-padding-x: #{$popover-header-padding-x};
  --#{$prefix}popover-header-padding-y: #{$popover-header-padding-y};
  @include rfs($popover-header-font-size, --#{$prefix}popover-header-font-size);
  --#{$prefix}popover-header-color: #{$popover-header-color};
  --#{$prefix}popover-header-bg: #{$popover-header-bg};
  --#{$prefix}popover-body-padding-x: #{$popover-body-padding-x};
  --#{$prefix}popover-body-padding-y: #{$popover-body-padding-y};
  --#{$prefix}popover-body-color: #{$popover-body-color};
  --#{$prefix}popover-arrow-width: #{$popover-arrow-width};
  --#{$prefix}popover-arrow-height: #{$popover-arrow-height};
  --#{$prefix}popover-arrow-border: var(--#{$prefix}popover-border-color);
  

Sass kintamieji

$popover-font-size:                 $font-size-sm;
$popover-bg:                        $white;
$popover-max-width:                 276px;
$popover-border-width:              $border-width;
$popover-border-color:              var(--#{$prefix}border-color-translucent);
$popover-border-radius:             $border-radius-lg;
$popover-inner-border-radius:       subtract($popover-border-radius, $popover-border-width);
$popover-box-shadow:                $box-shadow;

$popover-header-font-size:          $font-size-base;
$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;

Naudojimas

Įgalinti iššokančius langus naudojant „JavaScript“:

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

Kad iššokantys langai veiktų klaviatūros ir pagalbinių technologijų naudotojams

Kad klaviatūros naudotojai galėtų suaktyvinti iššokančius langus, turėtumėte juos pridėti tik prie HTML elementų, kurie tradiciškai yra skirti klaviatūrai ir yra interaktyvūs (pvz., nuorodos ar formų valdikliai). Nors savavališkus HTML elementus (pvz., <span>s) galima sufokusuoti pridedant tabindex="0"atributą, dėl to klaviatūros naudotojams bus pridėta potencialiai erzinančių ir klaidinančių tabuliavimo taškų neinteraktyviuose elementuose, o dauguma pagalbinių technologijų šiuo metu neskelbia iššokančiojo turinio. . Be to, nepasikliaukite vien tik hoveriššokančių langų paleidikliu, nes klaviatūros naudotojai negalės jų suaktyvinti.

Nors naudodami šią htmlparinktį galite įterpti turtingą, struktūrinį HTML į iškylančius langus, primygtinai rekomenduojame nepridėti per daug turinio. Šiuo metu iššokantys langai veikia taip, kad, kai jie rodomi, jų turinys yra susietas su aktyviklio elementu su aria-describedbyatributu. Dėl to visas popover turinys pagalbinių technologijų naudotojams bus paskelbtas kaip vienas ilgas, nenutrūkstamas srautas.

Be to, nors į iššokantįjį langą galima įtraukti ir interaktyvius valdiklius (pvz., formos elementus ar nuorodas) (pridedant šiuos elementus prie allowListleidžiamų atributų ir žymų), atminkite, kad šiuo metu iššokantis langas nevaldo klaviatūros fokusavimo tvarkos. Kai klaviatūros vartotojas atidaro iššokantįjį langą, dėmesys lieka ties suaktyvinimo elementu, o kadangi dokumento struktūroje iššokantis langas paprastai nevyksta iš karto po gaiduko, nėra garantijos, kad judant pirmyn / paspaudusTABperkels klaviatūros vartotoją į patį iškylantįjį langą. Trumpai tariant, paprasčiausiai pridėjus interaktyvius valdiklius prie iššokančiojo lango šie valdikliai gali būti nepasiekiami / nenaudojami klaviatūros ir pagalbinių technologijų naudotojams arba bent jau susidarys nelogiška bendra fokusavimo tvarka. Tokiais atvejais apsvarstykite galimybę naudoti modalinį dialogo langą.

Galimybės

Kadangi parinktis galima perduoti naudojant duomenų atributus arba „JavaScript“, galite pridėti parinkties pavadinimą prie data-bs-, kaip ir data-bs-animation="{value}". Perduodant parinktis per duomenų atributus , būtinai pakeiskite parinkties pavadinimo didžiosios raidės tipą iš „ camelCase “ į „ kebab-case “. Pavyzdžiui, naudokite data-bs-custom-class="beautifier"vietoj data-bs-customClass="beautifier".

Nuo 5.2.0 versijos „Bootstrap“ visi komponentai palaiko eksperimentinį rezervuotų duomenų atributą data-bs-config, kuriame galima laikyti paprastą komponento konfigūraciją kaip JSON eilutę. Kai elementas turi data-bs-config='{"delay":0, "title":123}'ir data-bs-title="456"atributus, galutinė titlereikšmė bus 456ir atskiri duomenų atributai nepaisys reikšmių, pateiktų data-bs-config. Be to, esamuose duomenų atributuose gali būti JSON reikšmės, pvz ., data-bs-delay='{"show":0,"hide":150}'.

Atminkite, kad saugumo sumetimais sanitize, sanitizeFnir allowListparinkčių negalima pateikti naudojant duomenų atributus.
vardas Tipas Numatytas apibūdinimas
allowList objektas Numatytoji reikšmė Objektas, kuriame yra leidžiamų atributų ir žymų.
animation loginis true Iššokančiai langui pritaikykite CSS išnykimo perėjimą.
boundary eilutė, elementas 'clippingParents' Iššokančiojo perpildymo apribojimo riba (taikoma tik Popper's preventOverflow modifikatoriui). Pagal numatytuosius nustatymus jis 'clippingParents'priima ir gali priimti HTMLElement nuorodą (tik naudojant JavaScript). Daugiau informacijos rasite Popper's detectOverflow dokumentuose .
container eilutė, elementas, klaidinga false Prideda iššokantįjį langą prie konkretaus elemento. Pavyzdys container: 'body':. Ši parinktis yra ypač naudinga, nes leidžia jums išdėstyti iššokantįjį langą dokumento sraute šalia paleidimo elemento – tai neleis iškylančiajam elementui nuslysti nuo paleidžiančio elemento keičiant lango dydį.
content eilutė, elementas, funkcija '' Numatytoji turinio vertė, jei data-bs-contentatributo nėra. Jei funkcija duota, ji bus iškviesta thisnurodant elementą, prie kurio prijungtas iššokantis langas.
customClass eilutė, funkcija '' Pridėkite klases prie iškylančiojo lango, kai jis rodomas. Atminkite, kad šios klasės bus pridėtos prie visų šablone nurodytų klasių. Norėdami pridėti kelias klases, atskirkite jas tarpais: 'class-1 class-2'. Taip pat galite perduoti funkciją, kuri turėtų grąžinti vieną eilutę su papildomais klasių pavadinimais.
delay skaičius, objektas 0 Iššokančiojo lango rodymo ir slėpimo delsa (ms) – netaikoma rankinio paleidimo tipui. Jei numeris pateikiamas, uždelsimas taikomas abiem slėptuvėms/rodyti. Objekto struktūra yra tokia: delay: { "show": 500, "hide": 100 }.
fallbackPlacements eilutė, masyvas ['top', 'right', 'bottom', 'left'] Apibrėžkite atsargines paskirties vietas pateikdami vietų sąrašą masyve (pagal pirmenybę). Daugiau informacijos rasite Popperio elgesio dokumentuose .
html loginis false Leisti HTML iškylančiajame lange. Jei tiesa, HTML žymos iššokančiajame lange titlebus pateikiamos iššokančiame lange. Jei klaidinga, innerTextypatybė bus naudojama turiniui įterpti į DOM. Jei nerimaujate dėl XSS atakų, naudokite tekstą.
offset skaičius, eilutė, funkcija [0, 0] Iššokimo poslinkis, palyginti su jo tikslu. Duomenų atributuose galite perduoti eilutę su kableliais atskirtomis reikšmėmis, pvz.: data-bs-offset="10,20". Kai funkcija naudojama poslinkiui nustatyti, ji iškviečiama su objektu, kuriame yra popper vieta, nuoroda ir popper rects kaip pirmasis argumentas. Suaktyvinantis elementas DOM mazgas perduodamas kaip antrasis argumentas. Funkcija turi grąžinti masyvą su dviem skaičiais: slydimas , atstumas . Norėdami gauti daugiau informacijos, žr. Popper's poslinkio dokumentus .
placement eilutė, funkcija 'top' Kaip išdėstyti iššokantįjį langą: automatinis, viršuje, apačioje, kairėje, dešinėje. Kai autonurodyta, jis dinamiškai perorientuos iššokantįjį langą. Kai funkcija naudojama vietai nustatyti, ji iškviečiama, kai pirmasis argumentas yra iššokantis DOM mazgas, o antrasis – aktyvuojantis elementas DOM mazgas. Kontekstas thisnustatytas į iššokantįjį egzempliorių.
popperConfig nulis, objektas, funkcija null Norėdami pakeisti numatytąją Bootstrap Popper konfigūraciją, žr . Popper konfigūraciją . Kai funkcija naudojama kuriant Popper konfigūraciją, ji iškviečiama su objektu, kuriame yra numatytoji Bootstrap Popper konfigūracija. Tai padeda naudoti ir sujungti numatytuosius nustatymus su savo konfigūracija. Funkcija turi grąžinti Popper konfigūracijos objektą.
sanitize loginis true Įjunkite arba išjunkite dezinfekavimą. Jei suaktyvinta 'template', parinktys bus išvalytos 'content'.'title'
sanitizeFn nulis, funkcija null Čia galite pateikti savo dezinfekavimo funkciją. Tai gali būti naudinga, jei norite dezinfekuoti naudoti tam skirtą biblioteką.
selector styga, netikra false Jei yra parinkiklis, iššokantys objektai bus deleguojami nurodytiems tikslams. Praktiškai tai taip pat naudojama dinamiškai pridėtiems DOM elementams ( jQuery.onpalaikymui) taikyti iššokančius langus. Žr . šią problemą ir informatyvų pavyzdį .
template styga '<div class="popover" role="popover"><div class="popover-arrow"></div><div class="popover-inner"></div></div>' Pagrindinis HTML, naudojamas kuriant iššokantįjį langą. Popover titlebus švirkščiamas į .popover-inner. .popover-arrowtaps iššokančiojo rodykle. Tolimiausias apvyniojimo elementas turi turėti .popoverklasę ir role="popover".
title eilutė, elementas, funkcija '' Numatytoji pavadinimo reikšmė, jei titleatributo nėra. Jei funkcija duota, ji bus iškviesta thisnurodant elementą, prie kurio prijungtas iššokantis langas.
trigger styga 'hover focus' Kaip suaktyvinamas iššokimas: spustelėkite, užveskite pelės žymeklį, fokusuokite, rankiniu būdu. Galite perduoti kelis aktyviklius; atskirkite juos tarpu. 'manual'nurodo, kad iššokantis ekranas bus paleistas programiškai naudojant .popover('show')ir metodus .popover('hide'); .popover('toggle')ši vertė negali būti derinama su jokiu kitu aktyvikliu. 'hover'savaime sukels iššokančius langus, kurių negalima suaktyvinti klaviatūra, ir jie turėtų būti naudojami tik tuo atveju, jei yra alternatyvių būdų, kaip perduoti tą pačią informaciją klaviatūros naudotojams.

Atskirų iššokančių langų duomenų atributai

Atskirų iššokančių langų parinktys gali būti nurodytos naudojant duomenų atributus, kaip paaiškinta aukščiau.

Naudojant funkciją supopperConfig

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

Metodai

Asinchroniniai metodai ir perėjimai

Visi API metodai yra asinchroniniai ir pradeda perėjimą . Jie grįžta pas skambinantįjį, kai tik prasideda perėjimas, bet jam nepasibaigus . Be to, pereinamojo komponento metodo iškvietimas bus ignoruojamas .

Daugiau informacijos rasite mūsų JavaScript dokumentacijoje .

Metodas apibūdinimas
disable Pašalina galimybę rodyti elemento iššokantįjį langą. Iššokantis ekranas gali būti rodomas tik tada, kai jis bus įjungtas iš naujo.
dispose Slepia ir sunaikina elemento iššokantįjį ekraną (pašalina DOM elemente saugomus duomenis). Iššokančių langų, kuriuose naudojamas delegavimas (kurie sukuriami naudojant parinktį selector) , negalima atskirai sunaikinti palikuonių aktyviklio elementuose.
enable Suteikia elemento popover galimybę būti rodomas. Iššokantys langai įjungti pagal numatytuosius nustatymus.
getInstance Statinis metodas, leidžiantis gauti iššokantį egzempliorių, susietą su DOM elementu.
getOrCreateInstance Statinis metodas, leidžiantis gauti iššokantįjį egzempliorių, susietą su DOM elementu, arba sukurti naują, jei jis nebuvo inicijuotas.
hide Slepia elemento iššokimą. Grįžta į skambinantįjį, kol iššokantis langas iš tikrųjų buvo paslėptas (ty prieš hidden.bs.popoverįvykį). Tai laikoma „rankiniu“ iššokančiojo ekrano paleidimu.
setContent Suteikia galimybę pakeisti popover turinį po jo inicijavimo.
show Atskleidžia elemento iššokimą. Grįžta į skambinantįjį, kol iššokantis langas iš tikrųjų nebuvo parodytas (ty prieš shown.bs.popoverįvykį). Tai laikoma „rankiniu“ iššokančiojo ekrano paleidimu. Iššokantys langai, kurių pavadinimas ir turinys yra nulinio ilgio, niekada nerodomi.
toggle Perjungia elemento iššokantįjį langą. Grįžta į skambinantįjį, kol iššokantis langas iš tikrųjų nebuvo parodytas arba paslėptas (ty prieš įvykstant shown.bs.popoverarba hidden.bs.popoverįvykiui). Tai laikoma „rankiniu“ iššokančiojo ekrano paleidimu.
toggleEnabled Perjungia galimybę rodyti arba paslėpti elemento iššokantįjį langą.
update Atnaujina elemento iššokančiojo lango padėtį.
// getOrCreateInstance example
const popover = bootstrap.Popover.getOrCreateInstance('#example') // Returns a Bootstrap popover instance

// setContent example
myPopover.setContent({
  '.popover-header': 'another title',
  '.popover-body': 'another content'
})
Metodas setContentpriima objectargumentą, kai kiekvienas ypatybės raktas yra galiojantis stringparinkiklis iškylančiojo skelbimo šablone, o kiekviena susijusi ypatybės reikšmė gali būti string| element| function| null

Renginiai

Renginys apibūdinimas
hide.bs.popover Šis įvykis suaktyvinamas iš karto, kai hideiškviečiamas egzemplioriaus metodas.
hidden.bs.popover Šis įvykis suaktyvinamas, kai iššokantis ekranas baigiamas paslėpti nuo vartotojo (lauks, kol bus baigti CSS perėjimai).
inserted.bs.popover Šis įvykis suaktyvinamas po show.bs.popoverįvykio, kai prie DOM pridedamas iššokantis šablonas.
show.bs.popover Šis įvykis suaktyvinamas iš karto, kai showiškviečiamas egzemplioriaus metodas.
shown.bs.popover Šis įvykis suaktyvinamas, kai iššokantis langas tampa matomas vartotojui (lauks, kol bus baigti CSS perėjimai).
const myPopoverTrigger = document.getElementById('myPopover')
myPopoverTrigger.addEventListener('hidden.bs.popover', () => {
  // do something...
})