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êxin
bootstrap.bundle.min.js
nav xwe an jî /bootstrap.bundle.js
ya 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
ûcontent
nirx 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
.disabled
andisabled
hê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-nowrap
Li 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.
prefers-reduced-motion
medyayê 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-toggle
hilbijê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 container
tî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 container
da 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 focus
bî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î tabindex
taybetmendiyek 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 disabled
taybetmendiyê 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ê hover
xwe 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-describedby
taybetmendiyê 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 allowList
taybetmendî û 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"
.
sanitize
,
sanitizeFn
, û
allowList
bi 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 |
content |
string | element | karî | '' |
Ger fonksiyonek were dayîn, ew ê bi |
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: |
html |
boolean | false |
HTML-ê têxe nav popover. Ger xelet be, innerText dê 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 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 |
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 The popover's
Pêdivî ye ku hêmana pêçanê ya herî derveyî |
title |
string | element | karî | '' |
Ger fonksiyonek were dayîn, ew ê bi |
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. manual nikare 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 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: 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: . 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.
rêdan
Popovera hêmanek eşkere dike. Berî ku popover bi rastî were xuyang kirin (ango berî ku shown.bs.popover
bû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.popover
bû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.popover
an hidden.bs.popover
bû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ê selector
tê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 | show Dema 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 | hide Dema 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.popover bû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...
})