Source

Mga Popover

Dokumentasyon at mga halimbawa para sa pagdaragdag ng Bootstrap popovers, tulad ng mga matatagpuan sa iOS, sa anumang elemento sa iyong site.

Pangkalahatang-ideya

Mga bagay na dapat malaman kapag ginagamit ang popover plugin:

  • Umaasa ang mga Popover sa 3rd party na library na Popper.js para sa pagpoposisyon. Dapat mong isama ang popper.min.js bago ang bootstrap.js o gamitin ang bootstrap.bundle.min.js/ bootstrap.bundle.jsna naglalaman ng Popper.js upang gumana ang mga popover!
  • Kinakailangan ng mga Popover ang tooltip plugin bilang dependency.
  • Kung binubuo mo ang aming JavaScript mula sa pinagmulan, nangangailanganutil.js ito ng .
  • Ang mga popover ay nag-opt-in para sa mga dahilan ng pagganap, kaya dapat mong simulan ang mga ito sa iyong sarili .
  • Hindi kailanman magpapakita ng popover ang zero-length titleat mga value.content
  • Tukuyin container: 'body'upang maiwasan ang pag-render ng mga problema sa mas kumplikadong mga bahagi (tulad ng aming mga pangkat ng input, mga pangkat ng button, atbp).
  • Ang pag-trigger ng mga popover sa mga nakatagong elemento ay hindi gagana.
  • Dapat na ma-trigger ang mga popover para sa .disabledo mga disabledelemento sa isang elemento ng wrapper.
  • Kapag na-trigger mula sa mga anchor na bumabalot sa maraming linya, ang mga popover ay igitna sa pagitan ng kabuuang lapad ng mga anchor. Gamitin .text-nowrapsa iyong <a>s upang maiwasan ang pag-uugaling ito.
  • Dapat na itago ang mga popover bago maalis ang mga kaukulang elemento nito sa DOM.
  • Maaaring ma-trigger ang mga popover salamat sa isang elemento sa loob ng shadow DOM.

Ang epekto ng animation ng bahaging ito ay nakasalalay sa prefers-reduced-motionquery ng media. Tingnan ang seksyon ng pinababang paggalaw ng aming dokumentasyon ng pagiging naa-access .

Panatilihin ang pagbabasa upang makita kung paano gumagana ang mga popover kasama ang ilang mga halimbawa.

Halimbawa: Paganahin ang mga popover sa lahat ng dako

Ang isang paraan upang simulan ang lahat ng mga popover sa isang pahina ay ang piliin ang mga ito ayon sa kanilang data-togglekatangian:

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

Halimbawa: Gamit ang containeropsyon

Kapag mayroon kang ilang mga istilo sa isang parent na elemento na nakakasagabal sa isang popover, gugustuhin mong tumukoy ng custom containerupang ang HTML ng popover ay lumabas na lang sa loob ng elementong iyon.

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

Halimbawa

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

Apat na direksyon

Apat na opsyon ang available: naka-align sa itaas, kanan, ibaba, at kaliwa.

<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
  Popover on top
</button>

<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
  Popover on right
</button>

<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Vivamus
sagittis lacus vel augue laoreet rutrum faucibus.">
  Popover on bottom
</button>

<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
  Popover on left
</button>

I-dismiss sa susunod na pag-click

Gamitin ang focustrigger upang i-dismiss ang mga popover sa susunod na pag-click ng user sa ibang elemento kaysa sa toggle na elemento.

Kinakailangan ang partikular na markup para sa dismiss-on-next-click

Para sa wastong cross-browser at cross-platform na pag-uugali, dapat mong gamitin ang <a>tag, hindi ang <button>tag, at dapat ka ring magsama ng tabindexattribute.

<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'
})

Mga elementong may kapansanan

Ang mga elementong may disabledattribute ay hindi interactive, ibig sabihin, hindi maaaring i-hover o i-click ng mga user ang mga ito upang mag-trigger ng popover (o tooltip). Bilang isang solusyon, gugustuhin mong i-trigger ang popover mula sa isang wrapper <div>o <span>at i-override ang pointer-eventsnasa naka-disable na elemento.

Para sa mga na-disable na pag-trigger ng popover, maaari mo ring mas gusto data-trigger="hover"na ang popover ay lumitaw bilang agarang visual na feedback sa iyong mga user dahil maaaring hindi nila inaasahan na mag- click sa isang hindi pinaganang elemento.

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

Paggamit

Paganahin ang mga popover sa pamamagitan ng JavaScript:

$('#example').popover(options)

Mga pagpipilian

Maaaring ipasa ang mga opsyon sa pamamagitan ng mga katangian ng data o JavaScript. Para sa mga katangian ng data, idagdag ang pangalan ng opsyon sa data-, tulad ng sa data-animation="".

Pangalan Uri Default Paglalarawan
animation boolean totoo Maglapat ng CSS fade transition sa popover
lalagyan string | elemento | mali mali

Idinaragdag ang popover sa isang partikular na elemento. Halimbawa: container: 'body'. Ang pagpipiliang ito ay partikular na kapaki-pakinabang dahil pinapayagan ka nitong iposisyon ang popover sa daloy ng dokumento malapit sa nagti-trigger na elemento - na pipigil sa popover na lumutang palayo sa nag-trigger na elemento sa panahon ng pagbabago ng laki ng window.

nilalaman string | elemento | function ''

Default na halaga ng nilalaman kung data-contentwalang katangian.

Kung ang isang function ay ibinigay, ito ay tatawagin kasama ang thisreference na nakatakda sa elemento kung saan ang popover ay naka-attach sa.

pagkaantala numero | bagay 0

Pagkaantala sa pagpapakita at pagtatago ng popover (ms) - hindi nalalapat sa manu-manong uri ng pag-trigger

Kung may ibinigay na numero, ilalapat ang pagkaantala sa parehong itago/ipakita

Ang istraktura ng bagay ay:delay: { "show": 500, "hide": 100 }

html boolean mali Ipasok ang HTML sa popover. Kung mali, ang textpamamaraan ng jQuery ay gagamitin upang magpasok ng nilalaman sa DOM. Gumamit ng text kung nag-aalala ka tungkol sa mga pag-atake ng XSS.
pagkakalagay string | function 'tama'

Paano iposisyon ang popover - auto | tuktok | ibaba | kaliwa | tama.
Kapag autotinukoy, dynamic nitong i-reorient ang popover.

Kapag ginamit ang isang function upang matukoy ang placement, tinatawag itong popover DOM node bilang unang argumento nito at ang triggering element na DOM node bilang pangalawa nito. Ang thiskonteksto ay nakatakda sa halimbawa ng popover.

tagapili string | mali mali Kung may ibibigay na selector, ang mga popover object ay idelegado sa mga tinukoy na target. Sa pagsasagawa, ito ay ginagamit upang paganahin ang dynamic na HTML na nilalaman na magkaroon ng mga popover na idinagdag. Tingnan ito at isang halimbawang nagbibigay-kaalaman .
template string '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'

Base HTML na gagamitin kapag gumagawa ng popover.

Ang popover's titleay iturok sa .popover-header.

Ang popover's contentay iturok sa .popover-body.

.arroway magiging arrow ng popover.

Ang pinakamalawak na elemento ng wrapper ay dapat magkaroon ng .popoverklase.

pamagat string | elemento | function ''

Default na halaga ng pamagat kung titlewalang katangian.

Kung ang isang function ay ibinigay, ito ay tatawagin kasama ang thisreference na nakatakda sa elemento kung saan ang popover ay naka-attach sa.

gatilyo string 'click' Paano na-trigger ang popover - i-click ang | mag-hover | focus | manwal. Maaari kang magpasa ng maraming trigger; paghiwalayin sila ng isang puwang. manualhindi maaaring isama sa anumang iba pang trigger.
offset numero | string 0 Offset ng popover na nauugnay sa target nito. Para sa higit pang impormasyon sumangguni sa mga offset na doc ng Popper.js .
fallbackPlacement string | array 'flip' Payagan na tukuyin kung aling posisyon ang gagamitin ng Popper sa fallback. Para sa higit pang impormasyon sumangguni sa mga doc ng pag -uugali ng Popper.js
hangganan string | elemento 'scrollParent' Overflow constraint na hangganan ng popover. Tumatanggap ng mga value ng 'viewport', 'window', 'scrollParent', o isang HTMLElement reference (JavaScript lang). Para sa higit pang impormasyon sumangguni sa preventOverflow docs ng Popper.js .

Mga katangian ng data para sa mga indibidwal na popover

Ang mga opsyon para sa mga indibidwal na popover ay maaaring tukuyin sa pamamagitan ng paggamit ng mga katangian ng data, gaya ng ipinaliwanag sa itaas.

Paraan

Mga asynchronous na pamamaraan at paglipat

Ang lahat ng mga pamamaraan ng API ay asynchronous at nagsisimula ng isang paglipat . Bumalik sila sa tumatawag sa sandaling magsimula ang paglipat ngunit bago ito matapos . Bilang karagdagan, babalewalain ang isang method call sa isang transitioning component .

Tingnan ang aming dokumentasyon ng JavaScript para sa higit pang impormasyon .

$().popover(options)

Sinisimulan ang mga popover para sa isang koleksyon ng elemento.

.popover('show')

Nagpapakita ng popover ng isang elemento. Bumabalik sa tumatawag bago aktwal na naipakita ang popover (ibig sabihin, bago shown.bs.popovermangyari ang kaganapan). Ito ay itinuturing na isang "manual" na pag-trigger ng popover. Ang mga popover na ang parehong pamagat at nilalaman ay zero-length ay hindi kailanman ipinapakita.

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

.popover('hide')

Itinatago ang popover ng isang elemento. Bumabalik sa tumatawag bago aktwal na naitago ang popover (ibig sabihin, bago hidden.bs.popovermangyari ang kaganapan). Ito ay itinuturing na isang "manual" na pag-trigger ng popover.

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

.popover('toggle')

I-toggle ang popover ng isang elemento. Bumabalik sa tumatawag bago aktwal na naipakita o naitago ang popover (ibig sabihin, bago mangyari ang shown.bs.popovero hidden.bs.popoverkaganapan). Ito ay itinuturing na isang "manual" na pag-trigger ng popover.

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

.popover('dispose')

Itinatago at sinisira ang popover ng isang elemento. Ang mga popover na gumagamit ng delegasyon (na ginawa gamit ang selectoropsyon ) ay hindi maaaring isa-isang sirain sa mga elemento ng descendant na trigger.

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

.popover('enable')

Nagbibigay ng kakayahang maipakita ang popover ng isang elemento. Ang mga popover ay pinagana bilang default.

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

.popover('disable')

Tinatanggal ang kakayahang maipakita ang popover ng isang elemento. Maipapakita lang ang popover kung ito ay muling pinagana.

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

.popover('toggleEnabled')

I-toggle ang kakayahang ipakita o itago ang popover ng isang elemento.

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

.popover('update')

Ina-update ang posisyon ng popover ng isang elemento.

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

Mga kaganapan

Uri ng kaganapan Paglalarawan
show.bs.popover Agad na gagana ang kaganapang ito kapag showtinawag ang paraan ng instance.
ipinapakita.bs.popover Ang kaganapang ito ay pinapagana kapag ang popover ay ginawang nakikita ng user (maghihintay na makumpleto ang mga transition ng CSS).
hide.bs.popover Agad na pinapagana ang kaganapang ito kapag hidetinawag na ang paraan ng instance.
hidden.bs.popover Ang kaganapang ito ay pinapagana kapag ang popover ay tapos nang itago mula sa user (maghihintay para sa mga transition ng CSS upang makumpleto).
ipinasok.bs.popover Ang kaganapang ito ay pinapagana pagkatapos ng show.bs.popoverkaganapan kapag ang template ng popover ay naidagdag sa DOM.
$('#myPopover').on('hidden.bs.popover', function () {
  // do something…
})