Biçe ser naveroka sereke Biçe navîgasyon belgeyan
in English

Popovers

Belgekirin û nimûneyên ji bo zêdekirina popoverên Bootstrap, mîna yên ku di iOS-ê de têne dîtin, li her hêmanek li ser malpera we.

Têgihiştinî

Tiştên ku divê hûn zanibin dema ku pêveka popover bikar tînin:

  • Popover ji bo pozîsyonê xwe dispêrin pirtûkxaneya partiya sêyemîn Popper . Divê hûn berî bootstrap.js -ê popper.min.js-ê têxinbootstrap.bundle.min.js nav xwe an jî / bootstrap.bundle.jsya ku Popper-ê dihewîne bikar bînin da ku popover kar bikin!
  • Popover pêveka tooltip -ê wekî pêvedanê hewce dike.
  • Popover ji ber sedemên performansê têne hilbijartin, ji ber vê yekê divê hûn bi xwe wan dest pê bikin .
  • Zero-dirêj titleû contentnirx dê ti carî popoverek nîşan nedin.
  • Diyar container: 'body'bikin ku hûn di hêmanên tevlihevtir de (mîna komên têketina me, komên bişkokê, hwd) pirsgirêkan çênekin.
  • Vekirina popoverên li ser hêmanên veşartî dê nexebite.
  • Pêdivî ye ku popoverên ji bo .disabledan disabledhêmanan li ser hêmanek pêçandî werin avêtin.
  • Dema ku ji lengerên ku li gelek rêzan diqelibin werin avêtin, popover dê di navbera firehiya giştî ya lengeran de bibin navend. .text-nowrapLi ser s-ya xwe bikar bînin <a>ku ji vê tevgerê dûr bixin.
  • Berî ku hêmanên wan ên têkildar ji DOM-ê werin rakirin divê popover werin veşartin.
  • Popover dikarin bi saya hêmanek di hundurê DOM-a siya de werin dest pê kirin.
Ji hêla xwerû ve, ev hêman paqijkera naverokê ya çêkirî bikar tîne, ku her hêmanên HTML-ê yên ku bi eşkere destûr nedaye ji holê radike. Ji bo bêtir agahdarî, beşa paqijkerê di belgeya meya JavaScript de bibînin.
Bandora anîmasyonê ya vê hêmanê bi pirsa prefers-reduced-motionmedyayê ve girêdayî ye. Binêre beşa tevgera kêmkirî ya belgeya gihîştina me .

Xwendina xwe bidomînin da ku bibînin ka popover çawa bi hin mînakan re dixebitin.

Mînak: Li her derê popovers çalak bike

Yek rê ji bo destpêkirina hemî popoverên li ser rûpelek dê ev be ku hûn wan li gorî taybetmendiya xwe data-bs-togglehilbijêrin:

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

Mînak: Vebijêrk bikar containertînin

Gava ku we hin şêwazên li ser hêmanek dêûbav hene ku mudaxeleyî popoverekê dikin, hûn ê bixwazin ku xwerûyek diyar bikin containerda ku li şûna wê HTML-a popover di hundurê wê hêmanê de xuya bibe.

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

Mînak

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

Çar rê

Çar vebijark hene: jor, rast, jêr û çepê rêzkirî. Dema ku Bootstrap-ê di RTL-ê de bikar tînin rêwerz têne xuyang kirin.

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

Li ser klîkek paşîn veqetînin

Tetikê bikar focusbînin da ku popoverên li ser klîkek paşîn a bikarhêner a hêmanek cûda ji hêmana veguheztinê dûr bixe.

Nîşanek taybetî ji bo rakirina-li-pêş-klîk hewce ye

Ji bo behremendiya xaça gerok û çar-platformê ya rast, divê hûn etîketê bikar bînin <a>, ne<button> tag, û divê hûn jî tabindextaybetmendiyek bi nav bikin.

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

hêmanên astengdar

Hêmanên bi disabledtaybetmendiyê ne înteraktîf in, yanî bikarhêner nikanin li wan bizivirin an bikirtînin da ku popoverek (an şîretek amûrek) bişopînin. Wekî çareseriyek, hûn ê bixwazin ku popover-ê ji pêçanek <div>an jî <span>, ku bi îdeal e ku bi karanîna klavyeyê-focusable hatî çêkirin vekin tabindex="0".

Ji bo pêlên popover ên neçalak, hûn dikarin her weha tercîh data-bs-trigger="hover focus"bikin da ku popover ji bikarhênerên we re wekî bertekek dîtbarî ya tavilê xuya bibe ji ber ku ew ne li bendê ne ku li ser hêmanek neçalak bikirtînin .

<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

Variables

$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);

Bikaranîna

Bi JavaScriptê popovers çalak bikin:

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

Çêkirina popoveran ji bo bikarhênerên klavyeyê û teknolojiya arîkar dixebitin

Ji bo ku hûn destûrê bidin bikarhênerên klavyeyê ku popoverên we çalak bikin, divê hûn wan tenê li hêmanên HTML-ê yên ku bi kevneşopî li ser klavyeyê ve girêdayî ne û înteraktîf in zêde bikin (wek girêdan an kontrolên formê). Her çend hêmanên HTML-ê yên kêfî (wek <span>s) dikarin bi lêzêdekirina tabindex="0"taybetmendiyê bêne balkişandin, ev ê ji bo bikarhênerên klavyeyê li ser hêmanên ne-înteraktîf rawestgehên potansiyel acizker û tevlihev zêde bike, û piraniya teknolojiyên alîkar naha naveroka popoverê di vê rewşê de ragihînin. . Digel vê yekê, bi tenê hoverxwe nespêrin wekî teşqela popoverên xwe, ji ber ku ev ê nekaribe wan ji bo bikarhênerên klavyeyê bişkîne.

Dema ku hûn dikarin bi vebijarkê HTML-ya dewlemend û birêkûpêk têxin nav popoveran html, em bi tundî pêşniyar dikin ku hûn ji zêdekirina naverokek zêde dûr bisekinin. Awayê ku popover naha dixebitin ev e ku, gava ku were xuyang kirin, naveroka wan bi hêmana tetikê bi aria-describedbytaybetmendiyê ve girêdayî ye. Wekî encamek, tevahiya naveroka popover-ê dê ji bikarhênerên teknolojiya arîkar re wekî yek dirêj, bênavber were ragihandin.

Wekî din, her çend gengaz e ku di popovera xwe de kontrolên înteraktîf (wekî hêmanên formê an girêdan) jî têxin nav xwe (bi zêdekirina van hêmanan li allowListtaybetmendî û tagên destûrdar), hay ji xwe hebin ku niha popover rêzika baldariya klavyeyê birêve naçe. Gava ku bikarhênerek klavyeyê popoverek vedike, balê dikişîne ser hêmana teşqelekirinê, û ji ber ku popover bi gelemperî tavilê di avahiya belgeyê de tavilê naşopîne, garantiyek tune ku bi pêş ve biçin / zext bikin.TABdê bikarhênerek klavyeyê biguheze nav popover bixwe. Bi kurtasî, bi tenê lêzêdekirina kontrolên înteraktîf li popoverek dibe ku van kontrolan ji bo bikarhênerên klavyeyê û bikarhênerên teknolojiyên arîkar negihiştî/nebikar bîne, an jî bi kêmanî fermanek giştî ya nemantiqî çêbike. Di van rewşan de, li şûna diyalogek modal bikar bînin.

Vebijêrk

Vebijark dikarin bi taybetmendiyên daneyan an JavaScriptê ve werin derbas kirin. Ji bo taybetmendiyên daneyê, navê vebijarkê lê zêde bikin data-bs-, wekî di data-bs-animation="". Dema ku vebijarkan bi taybetmendiyên daneyê re derbas dikin, pê ewle bin ku celebê doza navê vebijarkê ji camelCase biguhezînin kebab-case. Mînakî, li şûna ku bikar bînin data-bs-customClass="beautifier", bikar bînin data-bs-custom-class="beautifier".

Bala xwe bidinê ku ji ber sedemên ewlehiyê vebijarkên sanitize, sanitizeFn, û allowListbi karanîna taybetmendiyên daneyê nayên peyda kirin.
Nav Awa Destçûnî Terîf
animation boolean true Veguheztinek fade ya CSS-ê li popoverê bicîh bikin
container string | element | şaş false

Popoverê li hêmanek taybetî vedike. Mînak container: 'body':. Ev vebijark bi taybetî bikêrhatî ye ku ew dihêle hûn popoverê di herikîna belgeyê de li nêzî hêmana vekêşanê bi cih bikin - ku dê rê li ber ku popover di dema mezinbûna pencereyê de ji hêmana vekêşanê dûr nekeve.

content string | element | karî ''

data-bs-contentHeke taybetmendî tune be nirxa naverokê ya xwerû.

Ger fonksiyonek were dayîn, ew ê bi thiskoma referansa xwe re ji hêmana ku popover pê ve girêdayî ye were gazî kirin.

delay hejmar | tişt 0

Dereng xuyangkirin û veşartina popover (ms) - ji bo celebê destkêşana destan nayê sepandin

Ger jimarek were peyda kirin, dereng hem ji bo veşêrin/nîşandanê tê sepandin

Struktura objektê ev e:delay: { "show": 500, "hide": 100 }

html boolean false HTML-ê têxe nav popover. Ger xelet be, innerTextdê milk were bikar anîn da ku naverokê têxe DOM-ê. Heke hûn ji êrîşên XSS-ê ditirsin, nivîsê bikar bînin.
placement string | karî 'right'

Meriv çawa popoverê bi cih dike - oto | top | binê | çep | rast.
Dema autoku were diyar kirin, ew ê bi dînamîk veguhezîne popover.

Dema ku fonksiyonek ji bo destnîşankirina cîhê tê bikar anîn, ew bi girêka DOM-a popover wekî argumana wê ya yekem û hêmana vekêşana girê DOM-ê wekî duyemîn tê gotin. Çarçove thisli ser mînaka popoverê tête danîn.

selector string | şaş false Ger hilbijêrek were peyda kirin, dê tiştên popover ji armancên diyarkirî re werin veguheztin. Di pratîkê de, ev tê bikar anîn da ku naveroka HTML-ê ya dînamîkî bikar bîne da ku popovers lê zêde bibin. Vê û mînakek agahdar bibînin .
template ben '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'

Bingeha HTML-ê ku dema afirandina popover bikar bînin bikar bînin.

The popover's titledê bê derzîkirin .popover-header.

The popover's contentdê bê derzîkirin .popover-body.

.popover-arrowdê bibe tîra popoverê.

Pêdivî ye ku hêmana pêçanê ya herî derveyî .popoverçîna xwe hebe.

title string | element | karî ''

titleGer taybetmendî tune be nirxa sernavê ya xwerû.

Ger fonksiyonek were dayîn, ew ê bi thiskoma referansa xwe re ji hêmana ku popover pê ve girêdayî ye were gazî kirin.

trigger ben 'click' Popover çawa tê derxistin - bikirtînin | hover | fokus | destî. Hûn dikarin gelek teşqeleyan derbas bikin; wan bi cihekî veqetînin. manualnikare bi ti kêşek din re were hev kirin.
fallbackPlacements rêzî ['top', 'right', 'bottom', 'left'] Bi peydakirina navnîşek cîhên di rêzê de (li gorî rêza bijare) cîhên paşverû diyar bikin. Ji bo bêtir agahdarî serî li belgeyên tevgerê yên Popper bidin
boundary string | pêve 'clippingParents' Sînorê astengiya Overflow ya popoverê (tenê ji bo guhezkera preventOverflow ya Popper derbas dibe). Bi xwerû ew e 'clippingParents'û dikare referansek HTMLElement (tenê bi JavaScriptê) qebûl bike. Ji bo bêtir agahdarî serî li belgeyên detectOverflow yên Popper bidin .
customClass string | karî ''

Dema ku tê xuyang kirin çînên li popoverê zêde bikin. Bala xwe bidinê ku ev ders dê ji bilî dersên ku di şablonê de hatine destnîşan kirin werin zêdekirin. Ji bo zêdekirina çînên pirjimar, wan bi cihan veqetînin 'class-1 class-2':.

Her weha hûn dikarin fonksiyonek derbas bikin ku divê rêzek yekane ya ku navên pola zêde vedihewîne vegerîne.

sanitize boolean true Paqijkirinê çalak bikin an neçalak bikin. Ger were çalak kirin 'template', 'content'û 'title'vebijark dê bêne paqij kirin. Di belgeya meya JavaScriptê de beşa paqijkerê bibînin .
allowList tişt Nirxa standard Tişta ku taybetmendî û etîketên destûr dihewîne
sanitizeFn null | karî null Li vir hûn dikarin fonksiyona xweya paqijkirinê peyda bikin. Heke hûn tercîh dikin ku pirtûkxaneyek taybetî bikar bînin ku paqijkirinê bikin ev dikare kêrhatî be.
offset array | string | karî [0, 8]

Tevlihevkirina popoverê li gorî armanca xwe. Hûn dikarin rêzek di taybetmendiyên daneyê de bi nirxên veqetandî yên wek:data-bs-offset="10,20"

Dema ku fonksiyonek ji bo destnîşankirina offset tê bikar anîn, ew bi tiştek ku cîhê popper, referans, û rekteyên popper wekî argumana wê ya yekem vedihewîne tê gotin. Hêmana destkêşanê ya DOM-ê wekî argumana duyemîn derbas dibe. Fonksiyon divê arrayek bi du hejmaran vegerîne: .[skidding, distance]

Ji bo bêtir agahdarî serî li belgeyên offset ên Popper bidin .

popperConfig null | object | karî null

Ji bo guherandina veavakirina Popperê ya xwerû ya Bootstrap, li veavakirina Popper binêre .

Dema ku fonksiyonek ji bo afirandina veavakirina Popper tê bikar anîn, ew bi hêmanek ku veavakirina Popper-a xwerû ya Bootstrap-ê vedihewîne tê gotin. Ew ji we re dibe alîkar ku hûn xwerû bi veavakirina xwe re bikar bînin û hev bikin. Pêdivî ye ku fonksiyon ji bo Popper tiştek veavakirinê vegerîne.

Taybetmendiyên daneyê ji bo popoverên kesane

Vebijarkên ji bo popoverên takekesî dikare wekî ku li jor hatî ravekirin bi karanîna taybetmendiyên daneyê ve were destnîşankirin.

Bikaranîna fonksiyonê bipopperConfig

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

Methods

Rêbaz û veguherînên Asynchronous

Hemî rêbazên API-ê asynkron in û veguherînek dest pê dikin . Gava ku veguhêz dest pê kir lê berî ku biqede ew vedigerin bangkerê . Wekî din, bangek rêbazek li ser pêkhateyek veguhêz dê were paşguh kirin.

Ji bo bêtir agahdarî li belgeya meya JavaScriptê binêre .

rêdan

Popovera hêmanek eşkere dike. Berî ku popover bi rastî were xuyang kirin (ango berî ku shown.bs.popoverbûyer çêbibe) vedigere bangewazî. Ev wekî "bi destan" vekêşana popover tê hesibandin. Popoverên ku sernav û naveroka wan herdu jî sifir-dirêj in qet nayên xuyang kirin.

myPopover.show()

veşartin

Hêmanek popover vedişêre. Berî ku popover bi rastî veşêre (ango berî ku hidden.bs.popoverbûyer çêbibe) vedigere bangkerê. Ev wekî "bi destan" vekêşana popover tê hesibandin.

myPopover.hide()

toggle

Pîvana hêmanekê vedike. Berî ku popover bi rastî were xuyang kirin an veşartin (ango berî ku bûyer shown.bs.popoveran hidden.bs.popoverbûyer çêbibe) vedigere bangkerê. Ev wekî "bi destan" vekêşana popover tê hesibandin.

myPopover.toggle()

avêtin

Popovera hêmanekê vedişêre û hilweşîne (Daneyên hilanîn ên li ser hêmana DOM-ê radike). Popoverên ku delegasyonê bikar tînin (yên ku bi karanîna vebijarkê selectortêne afirandin ) nekarin bi rengekî ferdî li ser hêmanên nifûsê werin hilweşandin.

myPopover.dispose()

bikêrkirin

Kapasîteya nîşankirinê dide popovera hêmanan. Popover ji hêla xwerû ve têne çalak kirin.

myPopover.enable()

neçalak bike

Kapasîteya ku popovera hêmanek were xuyang kirin jê dike. Popover tenê heke ji nû ve were çalak kirin dê bikaribe were xuyang kirin.

myPopover.disable()

toggleEnabled

Desthilatdariya popovera hêmanek ku were xuyang kirin an veşartî vedike.

myPopover.toggleEnabled()

update

Helwesta popovera hêmanekê nûve dike.

myPopover.update()

getInstance

Rêbaza statîk ku dihêle hûn mînaka popover-ê ya ku bi hêmanek DOM-ê ve girêdayî ye bistînin

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

getOrCreateInstance

Rêbaza statîk a ku dihêle hûn mînaka popover-ê ya ku bi hêmanek DOM-ê ve girêdayî ye bistînin, an heke ew nehatibe destpêkirin yek nû biafirînin .

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

Events

Cureyê bûyerê Terîf
nîşan bide.bs.popover showDema ku rêbaza nimûneyê tê gazî kirin ev bûyer tavilê dişewite.
nîşan dan.bs.popover Dema ku popover ji bikarhêner re xuya bibe ev bûyer tê şewitandin (dê li bendê bimîne ku veguheztinên CSS biqede).
veşêre.bs.popover hideDema ku rêbaza nimûneyê hate gazîkirin , ev bûyer tavilê tê şewitandin .
veşartî.bs.popover Dema ku popover ji bikarhênerê veşartî xilas bû ev bûyer tê şewitandin (dê li bendê bimîne ku veguherînên CSS temam bibin).
xistin.bs.popover Ev bûyer piştî show.bs.popoverbûyerê dema ku şablonê popover li DOM-ê hate zêdekirin tê şewitandin.
var myPopoverTrigger = document.getElementById('myPopover')
myPopoverTrigger.addEventListener('hidden.bs.popover', function () {
  // do something...
})