Source

Popovers

Dokumentado kaj ekzemploj por aldoni Bootstrap popovers, kiel tiuj trovitaj en iOS, al iu ajn elemento en via retejo.

Superrigardo

Aferoj sciindaj kiam vi uzas la popover-kromaĵon:

  • Popovers dependas de la tria-partia biblioteko Popper.js por poziciigado. Vi devas inkluzivi popper.min.js antaŭ bootstrap.js aŭ uzi bootstrap.bundle.min.js/ bootstrap.bundle.jskiu enhavas Popper.js por ke popovers funkciu!
  • Popovers postulas la konsileblan kromprogramon kiel dependecon.
  • Se vi konstruas nian JavaScript el la fonto, ĝi postulasutil.js .
  • Popovers estas aligeblaj pro rendimentokialoj, do vi devas pravigi ilin mem .
  • Nul-longo titlekaj contentvaloroj neniam montros popover.
  • Specifu container: 'body'por eviti bildigajn problemojn en pli kompleksaj komponantoj (kiel niaj eniggrupoj, butongrupoj, ktp).
  • Deĉenigi popovers sur kaŝitaj elementoj ne funkcios.
  • Popovers por .disableddisabledelementoj devas esti ekigitaj sur envolvaĵelemento.
  • Kiam ekigitaj de ankroj kiuj volvas trans multoblaj linioj, popovers estos centritaj inter la totala larĝo de la ankroj. Uzu .text-nowrapsur via <a>por eviti ĉi tiun konduton.
  • Popovers devas esti kaŝitaj antaŭ ol iliaj ekvivalentaj elementoj estis forigitaj de la DOM.

Daŭre legu por vidi kiel popovers funkcias kun kelkaj ekzemploj.

Ekzemplo: Ebligu popovers ĉie

Unu maniero pravalorigi ĉiujn popovers sur paĝo estus elekti ilin laŭ ilia data-toggleatributo:

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

Ekzemplo: Uzante la containeropcion

Kiam vi havas iujn stilojn sur gepatra elemento, kiuj malhelpas popover, vi volas specifi kutimon containerpor ke la HTML de la popover aperu ene de tiu elemento anstataŭe.

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

Ekzemplo

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

Kvar direktoj

Kvar opcioj estas disponeblaj: supro, dekstre, malsupre kaj maldekstre vicigitaj.

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

Forĵeti ĉe sekva klako

Uzu la focusellasilon por malakcepti popovers ĉe la sekva klako de la uzanto de malsama elemento ol la baskuliga elemento.

Specifa markado bezonata por malakcepti-on-sekva-klako

Por taŭga trans-retumilo kaj transplatforma konduto, vi devas uzi la <a>etikedon, ne la <button>etikedon, kaj vi ankaŭ devas inkluzivi tabindexatributon.

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

Malebligitaj elementoj

Elementoj kun la disabledatributo ne estas interagaj, tio signifas, ke uzantoj ne povas ŝvebi aŭ klaki ilin por ekigi popover (aŭ konsileto). Kiel solvo, vi volas ekigi la popover de envolvaĵo <div><span>kaj superregi la pointer-eventssur la malfunkciigita elemento.

Por malfunkciigitaj popover-eksiloj, vi ankaŭ preferas data-trigger="hover"tiel ke la popover aperu kiel tuja vida sugesto al viaj uzantoj ĉar ili eble ne atendas klaki sur malfunkciigita 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>

Uzado

Ebligu popovers per JavaScript:

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

Opcioj

Opcioj povas esti pasitaj per datumaj atributoj aŭ JavaScript. Por datumaj atributoj, aldonu la opcionomon al data-, kiel en data-animation="".

Nomo Tajpu Defaŭlte Priskribo
animacio bulea vera Apliku CSS-fade-transiron al la popover
ujo ŝnuro | elemento | malvera malvera

Aldonas la popover al specifa elemento. Ekzemplo: container: 'body'. Ĉi tiu opcio estas precipe utila pro tio, ke ĝi ebligas al vi poziciigi la popover en la fluo de la dokumento proksime de la ekfunkciiga elemento - kio malhelpos ke la popover flosu for de la ekfunkciiga elemento dum fenestroregrandigo.

enhavo ŝnuro | elemento | funkcio ''

Defaŭlta enhavvaloro se data-contentatributo ne ĉeestas.

Se funkcio estas donita, ĝi estos vokita kun ĝia thisreferenco aro al la elemento al kiu la popover estas ligita.

prokrasto nombro | objekto 0

Prokrasto montri kaj kaŝi la popover (ms) - ne validas por mana ellasiltipo

Se nombro estas provizita, prokrasto estas aplikata al ambaŭ kaŝi/montri

Objekta strukturo estas:delay: { "show": 500, "hide": 100 }

html bulea malvera Enigu HTML en la popover. Se malvera, la textmetodo de jQuery estos uzata por enmeti enhavon en la DOM. Uzu tekston se vi zorgas pri XSS-atakoj.
lokigo ŝnuro | funkcio 'ĝuste'

Kiel poziciigi la popover - aŭtomata | supro | fundo | maldekstra | ĝuste.
Kiam autoestas specifita, ĝi dinamike reorientiĝos la popover.

Kiam funkcio estas uzata por determini la lokigon, ĝi estas vokita kun la popover DOM-nodo kiel sia unua argumento kaj la ekiga elemento DOM-nodo kiel sia dua. La thiskunteksto estas agordita al la popover-instanco.

elektilo ŝnuro | malvera malvera Se elektilo estas disponigita, popover-objektoj estos delegitaj al la specifitaj celoj. En praktiko, ĉi tio estas uzata por ebligi dinamikan HTML-enhavon por aldoni popovers. Vidu ĉi tion kaj informan ekzemplon .
ŝablono ŝnuro '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'

Baza HTML por uzi dum kreado de la popover.

La popover-oj titleestos injektitaj en la .popover-header.

La popover-oj contentestos injektitaj en la .popover-body.

.arrowfariĝos la sago de la popover.

La plej ekstera envolvaĵelemento devus havi la .popoverklason.

titolo ŝnuro | elemento | funkcio ''

Defaŭlta titolvaloro se titleatributo ne ĉeestas.

Se funkcio estas donita, ĝi estos vokita kun ĝia thisreferenco aro al la elemento al kiu la popover estas ligita.

ellasilon ŝnuro 'klako' Kiel popover estas ekigita - klaku | ŝvebi | fokuso | manlibro. Vi povas pasi plurajn ellasilon; apartigu ilin per spaco. manualne povas esti kombinita kun iu ajn alia ellasilo.
ofseto nombro | ŝnuro 0 Ofseto de la popover relative al ĝia celo. Por pliaj informoj raportu al la ofsetaj dokumentoj de Popper.js .
faloLokigo ŝnuro | tabelo 'flip' Permesu specifi, kiun pozicion Popper uzos ĉe repliko. Por pliaj informoj raportu al la kondutdokumentoj de Popper.js
limo ŝnuro | elemento 'scrollParent' Superflua limo limo de la popover. Akceptas la valorojn de 'viewport', 'window', 'scrollParent', aŭ HTMLElement-referenco (nur JavaScript). Por pliaj informoj raportu al preventOverflow- dokumentoj de Popper.js .

Datumaj atributoj por individuaj popovers

Opcioj por individuaj popovers povas alternative esti precizigitaj per la uzo de datumaj atributoj, kiel klarigite supre.

Metodoj

Nesinkronaj metodoj kaj transiroj

Ĉiuj API-metodoj estas nesinkronaj kaj komencas transiron . Ili revenas al la alvokanto tuj kiam la transiro estas komencita sed antaŭ ol ĝi finiĝas . Krome, metodovoko sur transira komponento estos ignorita .

Vidu nian JavaScript-dokumentaron por pliaj informoj.

$().popover(options)

Inicialigas popovers por elemento kolekto.

.popover('show')

Rivelas la popover de elemento. Revenas al la alvokanto antaŭ ol la popover efektive montriĝis (te antaŭ ol la shown.bs.popoverevento okazas). Ĉi tio estas konsiderita "manlibro" ekigado de la popover. Popovers kies kaj titolo kaj enhavo estas nullongaj neniam estas montrataj.

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

.popover('hide')

Kaŝas la popover de elemento. Revenas al la alvokanto antaŭ ol la popover efektive estis kaŝita (te antaŭ ol la hidden.bs.popoverevento okazas). Ĉi tio estas konsiderita "manlibro" ekigado de la popover.

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

.popover('toggle')

Ŝaltas la popover de elemento. Revenas al la alvokanto antaŭ ol la popover efektive estis montrita aŭ kaŝita (t.e. antaŭ ol la shown.bs.popoverevento hidden.bs.popoverokazas). Ĉi tio estas konsiderita "manlibro" ekigado de la popover.

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

.popover('dispose')

Kaŝas kaj detruas la popover de elemento. Popovers kiuj uzas delegacion (kiuj estas kreitaj uzante la selectoropcion ) ne povas esti individue detruitaj sur posteulaj ellasilelementoj.

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

.popover('enable')

Donas al popover de elemento la kapablon esti montrita. Popovers estas ebligitaj defaŭlte.

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

.popover('disable')

Forigas la kapablon por ke la popover de elemento estu montrita. La popover nur povos esti montrita se ĝi estas reebligita.

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

.popover('toggleEnabled')

Ŝaltas la kapablon por ke la popover de elemento estu montrita aŭ kaŝita.

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

.popover('update')

Ĝisdatigas la pozicion de la popover de elemento.

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

Eventoj

Eventa Tipo Priskribo
show.bs.popover Ĉi tiu evento tuj ekfunkciigas kiam la showekzempla metodo estas vokita.
montrata.bs.popover Ĉi tiu evento estas lanĉita kiam la popover fariĝis videbla al la uzanto (atendos ke CSS-transiroj finiĝos).
kaŝi.bs.popover Ĉi tiu evento estas lanĉita tuj kiam la hideekzempla metodo estas vokita.
kaŝita.bs.popover Ĉi tiu evento estas lanĉita kiam la popover finiĝis kaŝita de la uzanto (atendos ke CSS-transiroj finiĝos).
enigita.bs.popover Ĉi tiu evento estas lanĉita post la show.bs.popoverevento kiam la popover ŝablono estis aldonita al la DOM.
$('#myPopover').on('hidden.bs.popover', function () {
  // do something…
})