باز بدە بۆ ناوەڕۆکی سەرەکی باز بدە بۆ گەشتکردن بە دۆکیومێنتەکان
Check
in English

پۆپۆڤەرز

بەڵگەنامە و نموونە بۆ زیادکردنی Bootstrap popovers، وەک ئەوانەی لە iOS دەبینرێن، بۆ هەر توخمێک لە ماڵپەڕەکەتدا.

تێڕوانینێکی گشتی

ئەو شتانەی کە پێویستە بزانیت لە کاتی بەکارهێنانی پێوەکراوەکەی popover:

  • پۆپۆڤەرز پشت بە کتێبخانەی لایەنی سێیەم پۆپەر دەبەستێت بۆ جێگیرکردن. پێویستە پێش , popper.min.js دابنێیتbootstrap.js ، یان یەکێک بەکاربهێنیت bootstrap.bundle.min.jsکە Popper لەخۆدەگرێت.
  • Popovers پێویستیان بە پێوەکراوەکەی popover وەک وابەستەیەک هەیە.
  • Popovers بە هۆکاری کاراییەوە بەشداریکردنە، بۆیە دەبێت خۆت سەرەتایییان بکەیت .
  • سفر-درێژی titleو contentبەهاکان هەرگیز پۆپۆڤەرێک نیشان نادەن.
  • دیاری بکە container: 'body'بۆ ئەوەی کێشەی ڕەندەرکردن لە پێکهاتە ئاڵۆزترەکاندا ڕوونەدات (وەک گروپەکانی چوونەژوورەوەمان، گروپەکانی دوگمەکان و هتد).
  • دەستپێکردنی پۆپۆڤەرەکان لەسەر توخمە شاراوەکان کار ناکات.
  • پۆپۆڤەرەکان بۆ .disabledیان disabledتوخمەکان دەبێت لەسەر توخمێکی پێچراو دەستپێبکرێن.
  • کاتێک لە لەنگەرەکانەوە دەستپێدەکرێت کە بەسەر چەندین هێڵدا دەپێچنەوە، پۆپۆڤەرەکان لە نێوان پانایی گشتی لەنگەرەکاندا لە ناوەڕاستدا دەبن. .text-nowrapلەسەر s ـەکەت بەکاربهێنە <a>بۆ ئەوەی لەم ڕەفتارە دوور بکەویتەوە.
  • دەبێت پۆپۆڤەرەکان بشاردرێنەوە پێش ئەوەی توخمە هاوبەشەکانیان لە DOM لاببرێن.
  • دەتوانرێت Popovers بەهۆی توخمێک لە ناو DOM ی سێبەردا دەستپێبکرێت.
بە شێوەیەكی بنەڕەتی، ئەم پێکهاتەیە پاککەرەوەی ناوەڕۆکی ناوەکی بەکاردەهێنێت، کە هەر توخمێکی HTML کە بە ڕوونی ڕێگەپێدراو نییە، لادەبات. بۆ زانیاری زیاتر سەیری بەشی پاککەرەوە بکە لە بەڵگەنامەکانی جاڤاسکڕێپتەکەماندا .
کاریگەری ئەنیمەیشنی ئەم پێکهاتەیە وابەستەی prefers-reduced-motionپرسیاری میدیایە. سەیری بەشی جووڵەی کەمکراوە بکە لە بەڵگەنامەکانی دەستڕاگەیشتنمان .

بەردەوام بە لە خوێندنەوە بۆ ئەوەی بزانیت چۆن پۆپۆڤەرەکان کاردەکەن بە هەندێک نموونە.

نموونە

popovers چالاک بکە

وەک لە سەرەوە باسمان کرد، دەبێت پۆپۆڤەرەکان دەستپێبکەیت پێش ئەوەی بتوانرێت بەکاربهێنرێت. یەکێک لە ڕێگاکان بۆ دەستپێکردنی هەموو پۆپۆڤەرەکان لە لاپەڕەیەکدا ئەوەیە کە بەپێی تایبەتمەندییەکانیان هەڵیانبژێریت data-bs-toggle، وەک:

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

دیمۆی ڕاستەوخۆ

ئێمە جاڤاسکڕێپت هاوشێوەی پارچەی سەرەوە بەکاردەهێنین بۆ ڕەندەری ئەم پۆپۆڤەرە ڕاستەوخۆیەی خوارەوە. ناونیشانەکان لە ڕێگەی دادەنرێت data-bs-titleو ناوەڕۆکی جەستە لە ڕێگەی data-bs-content.

ئازادانە یەکێکیان titleیان data-bs-titleلە HTML ـەکەتدا بەکاربهێنە. کاتێک titleبەکاردەهێنرێت، پۆپەر بە شێوەیەکی ئۆتۆماتیکی جێگەی دەگرێتەوە بە data-bs-titleکاتێک توخمەکە ڕەندەر دەکرێت.
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>

چوار ئاراستە

چوار بژاردە بەردەستە: سەرەوە، ڕاست، خوارەوە و چەپ. ڕێنماییەکان لە کاتی بەکارهێنانی Bootstrap لە RTLدا ئاوێنە دەکرێن. ڕێکبخە data-bs-placementبۆ گۆڕینی ئاراستەکە.

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>

باوcontainer

کاتێک هەندێک ستایلت لەسەر توخمێکی باوک هەیە کە دەستوەردان لە پۆپۆڤەرێک دەکەن، دەتەوێت تایبەتمەندییەک دیاری بکەیت بۆ containerئەوەی لەبری ئەوە HTML ی پۆپۆڤەرەکە لەناو ئەو توخمەدا دەربکەوێت. ئەمە لە خشتەکانی وەڵامدەرەوە، گروپەکانی هاتنەژوورەوە و هاوشێوەکانیدا باو و ئاساییە.

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

دۆخێکی تر کە دەتەوێت تایبەتمەندییەکی ڕوون دابنێیت containerبریتین لە popovers لەناو دیالۆگێکی مۆداڵیدا , بۆ ئەوەی دڵنیا بیت لەوەی کە خودی popoverەکە بە مۆداڵەکەوە لکێنراوە. ئەمە بە تایبەتی گرنگە بۆ ئەو پۆپۆڤەرانەی کە توخمە کارلێککەرەکانیان تێدایە – دیالۆگەکانی مۆداڵی فۆکەس دەخاتە تەڵەوە، بۆیە مەگەر پۆپۆڤەر توخمێکی منداڵی مۆداڵی نەبێت، بەکارهێنەران ناتوانن فۆکەس بکەن یان ئەم توخمە کارلێککارانە چالاک بکەن.

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

پۆپۆڤەری تایبەت بەخۆت

لە v5.2.0 زیاد کراوە

دەتوانیت بە بەکارهێنانی گۆڕاوەکانی CSS دەرکەوتنی پۆپۆڤەرەکان بەپێی خواستی خۆت دابنێیت . ئێمە پۆلێکی تایبەتمان لەگەڵ data-bs-custom-class="custom-popover"دادەنێین بۆ مەودای دەرکەوتنی تایبەتمەندیمان و بەکاریدەهێنین بۆ سەرپێچی هەندێک لە گۆڕاوە ناوخۆییەکانی CSS.

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

لە کلیکی داهاتوودا لە کارەکەت دوور بخەرەوە

تریگەر بەکاربهێنە focusبۆ ڕەتکردنەوەی پۆپۆڤەرەکان لەسەر کلیکی داهاتووی بەکارهێنەر لەسەر توخمێکی جیاواز لە توخمەکەی toggle.

پێویستە نیشانەیەکی تایبەت بۆ ڕەتکردنەوە لەسەر کلیککردنی داهاتوو

بۆ هەڵسوکەوتی دروستی cross-browser و cross-platform، پێویستە تاگەکە بەکاربهێنیت <a>نەک تاگەکە ، <button>هەروەها دەبێت tabindexتایبەتمەندییەک لەخۆبگریت.

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

توخمە لەکارخراوەکان

ئەو توخمانەی کە disabledتایبەتمەندیەکەیان هەیە کارلێککار نین، واتە بەکارهێنەران ناتوانن پەنجەیان لەسەر دابنێن یان کلیکیان لەسەر بکەن بۆ دەستپێکردنی پۆپۆڤەر (یان ئامۆژگاری ئامراز). وەک چارەسەرێک، تۆ دەتەوێت پۆپۆڤەرەکە لە پێچەرێکەوە <div>یان <span>, بە شێوەیەکی ئایدیاڵ دروستکراوە بە بەکارهێنانی تەرکیزکردنی کیبۆرد tabindex="0".

بۆ دەستپێکەرەکانی پۆپۆڤەری لەکارکەوتوو، ڕەنگە پێت باشە data-bs-trigger="hover focus"کە پۆپۆڤەرەکە وەک فیدباکێکی بینراوی دەستبەجێ بۆ بەکارهێنەرانت دەربکەوێت چونکە لەوانەیە چاوەڕێی ئەوە نەکەن کلیک لەسەر توخمێکی لەکارخراو بکەن.

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

گۆڕاوەکان

لە v5.2.0 زیاد کراوە

وەک بەشێک لە نزیکبوونەوەی گۆڕاوە CSS پەرەسەندووەکانی Bootstrap، ئێستا popovers گۆڕاوە ناوخۆییەکانی CSS بەکاردەهێنن .popoverبۆ بەرزکردنەوەی خۆکارکردنی کاتی ڕاستەقینە. بەهاکان بۆ گۆڕاوەکانی CSS لە ڕێگەی Sass دادەنرێت، بۆیە هێشتا پشتگیری لە خۆکارکردنی Sass دەکرێت، هەروەها.

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

گۆڕاوەکانی ساس

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

بەکارهێنان

چالاککردنی popovers لە ڕێگەی جاڤاسکڕێپتەوە:

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

کردنی پۆپۆڤەرەکان بۆ بەکارهێنەرانی کیبۆرد و تەکنەلۆژیای یارمەتیدەر کاربکەن

بۆ ئەوەی ڕێگە بە بەکارهێنەرانی کیبۆرد بدەیت کە پۆپۆڤەرەکانت چالاک بکەن، تەنها پێویستە زیادیان بکەیت بۆ ئەو توخمانەی HTML کە بە شێوەیەکی نەریتی فۆکەس لەسەر کیبۆرد و کارلێککەرن (وەک بەستەر یان کۆنتڕۆڵی فۆڕم). هەرچەندە دەتوانرێت توخمە HTML ی ئارەزوومەندانە (وەک <span>s) بە زیادکردنی تایبەتمەندییەکە بکرێتە فۆکەس tabindex="0"، بەڵام ئەمە وەستانی تابەکانی ئەگەری بێزارکەر و سەرلێشێواو لەسەر توخمە ناکارلێککەرەکان بۆ بەکارهێنەرانی کیبۆرد زیاد دەکات، و زۆربەی تەکنەلۆژیا یارمەتیدەرەکان لە ئێستادا ناوەڕۆکی popover لەم دۆخەدا ڕاناگەیەنن . سەرەڕای ئەوەش، تەنها پشت بەو شتانە مەبەستە hoverوەک دەستپێکەر بۆ پۆپۆڤەرەکانت، چونکە ئەمە وا دەکات کە مەحاڵ بێت دەستپێکردنیان بۆ بەکارهێنەرانی کیبۆرد.

لە کاتێکدا دەتوانیت HTML دەوڵەمەند و پێکهاتەدار لە popovers بە htmlبژاردەکە دابنێیت، ئێمە بە توندی پێشنیار دەکەین کە خۆت بەدوور بگرێت لە زیادکردنی بڕێکی زۆر لە ناوەڕۆک. شێوازی کارکردنی پۆپۆڤەرەکان لە ئێستادا ئەوەیە کە، کاتێک پیشان دەدرێن، ناوەڕۆکەکەیان بەستراوەتەوە بە توخمە دەستپێکەرەکە بە aria-describedbyتایبەتمەندییەکە. لە ئەنجامدا، تەواوی ناوەڕۆکی popover وەک یەک ڕژێمی درێژ و بێ پچڕان بە بەکارهێنەرانی تەکنەلۆژیای یارمەتیدەر ڕادەگەیەنرێت.

سەرەڕای ئەوە، لە کاتێکدا دەتوانرێت کۆنتڕۆڵە کارلێککارەکان (وەک توخمەکانی فۆرم یان بەستەرەکان) لە پۆپۆڤەرەکەتدا جێگیر بکرێت (بە زیادکردنی ئەم توخمانە بۆ allowListتایبەتمەندی و تاگە ڕێگەپێدراوەکان)، ئاگاداربە کە لە ئێستادا پۆپۆڤەر ڕێکخستنی فۆکۆسی کیبۆرد بەڕێوە نابات. کاتێک بەکارهێنەرێکی کیبۆرد پۆپۆڤەرێک دەکاتەوە، فۆکەس لەسەر توخمە دەستپێکەرەکە دەمێنێتەوە، و بەو پێیەی پۆپۆڤەرەکە بەزۆری دەستبەجێ بەدوای تریگەرەکەدا ناچێت لە پێکهاتەی بەڵگەنامەکەدا، هیچ گەرەنتییەک نییە کە بەرەو پێشەوە/پەستان بچێتTABبەکارهێنەرێکی کیبۆرد دەگوازێتەوە بۆ ناو خودی پۆپۆڤەرەکە. بە کورتی، بە سادەیی زیادکردنی کۆنتڕۆڵە کارلێکەکان بۆ پۆپۆڤەرێک ئەگەری زۆرە ئەم کۆنتڕۆڵانە بۆ بەکارهێنەرانی کیبۆرد و بەکارهێنەرانی تەکنەلۆژیا یارمەتیدەرەکان نەگات/بەکارنەهێنرێت، یان لانیکەم ببێتە هۆی ئەوەی کە فەرمانێکی فۆکۆسی گشتی نالۆژیکی بێت. لەم حاڵەتانەدا، بیر لە بەکارهێنانی دیالۆگێکی مۆداڵی بکەرەوە لەبری ئەوە.

بژاردەکان

بەو پێیەی دەتوانرێت هەڵبژاردنەکان لە ڕێگەی تایبەتمەندییەکانی داتا یان جاڤاسکڕێپتەوە تێپەڕێنرێت، دەتوانیت ناوی هەڵبژاردنێک زیاد بکەیت بۆ data-bs-, وەک لە data-bs-animation="{value}". دڵنیابە لە گۆڕینی جۆری کەیسی ناوی هەڵبژاردنەکە لە “ camelCase ” بۆ “ kebab-case ” لە کاتی تێپەڕاندنی هەڵبژاردنەکان لە ڕێگەی تایبەتمەندییەکانی داتا. بۆ نموونە data-bs-custom-class="beautifier"لەبری data-bs-customClass="beautifier".

لە Bootstrap 5.2.0 ەوە، هەموو پێکهاتەکان پشتگیری لە تایبەتمەندییەکی داتا یەدەگی تاقیکاریdata-bs-config دەکەن کە دەتوانێت ڕێکخستنی پێکهاتەی سادە وەک ڕستەیەکی JSON لەخۆبگرێت. کاتێک توخمێک تایبەتمەندی data-bs-config='{"delay":0, "title":123}'و data-bs-title="456"تایبەتمەندیەکانی هەیە، titleبەهای کۆتایی دەبێت 456و تایبەتمەندییە جیاوازەکانی داتا بەهاکان دەگۆڕن کە لە data-bs-config. سەرەڕای ئەوە، تایبەتمەندییە داتاکانی ئێستا دەتوانن بەهاکانی JSON وەک data-bs-delay='{"show":0,"hide":150}'.

تێبینی بکە کە لەبەر هۆکاری ئاسایش ناتوانرێت هەڵبژاردەکانی sanitize, sanitizeFn, و بە بەکارهێنانی تایبەتمەندییەکانی داتا دابین بکرێت.allowList
ناو جۆر بنەڕەتی وەسف
allowList شت بةهاى دواكةوتن ئۆبجێکتی کە تایبەتمەندی و تاگی ڕێگەپێدراو لەخۆدەگرێت.
animation boolean true گواستنەوەی کاڵبوونەوەی CSS بۆ popover بەکاربهێنە.
boundary ڕستە، توخم 'clippingParents' سنووری سنووردارکردنی Overflow ی popover (تەنها بۆ دەستکاریکەری preventOverflow ی Popper دەگونجێت). بە شێوەیەكی بنەڕەتی، 'clippingParents'ئاماژەی HTMLElement یە و دەتوانێت قبوڵ بكات (تەنها لە ڕێگەی جاڤا سكریپتەوە). بۆ زانیاری زیاتر سەردانی دۆکیومێنتەکانی detectOverflow ی Popper بکە .
container ڕستە، توخم، درۆ false پۆپۆڤەرەکە بە توخمێکی دیاریکراوەوە دەبەستێتەوە. نموونە: container: 'body'. ئەم هەڵبژاردنە بە تایبەتی بەسوودە لەبەر ئەوەی ڕێگەت پێدەدات پۆپۆڤەرەکە لە ڕەوتی بەڵگەنامەکەدا لە نزیک توخمە دەستپێکەرەکە دابنێیت - کە ڕێگری دەکات لە هەڵفڕینی پۆپۆڤەرەکە لە توخمە دەستپێکەرەکە دوور لە کاتی گۆڕینی قەبارەی پەنجەرە.
content ڕیز، توخم، فەنکشن '' بەهای ناوەڕۆکی پێشوەختە ئەگەر data-bs-contentتایبەتمەندییەکە ئامادە نەبێت. ئەگەر فەنکشنێک بدرێت، ئەوا بانگ دەکرێت بە thisڕێکخستنی ئاماژەکەی بۆ ئەو توخمە کە پۆپۆڤەرەکە پێیەوە لکێنراوە.
customClass ڕستە، فەنکشن '' کاتێک پیشان دەدرێت پۆلەکان زیاد بکە بۆ پۆپۆڤەر. تێبینی بکە کە ئەم پۆلانە زیاد دەکرێن جگە لە هەر پۆلێک کە لە قاڵبەکەدا دیاری کراوە. بۆ زیادکردنی چەندین پۆل، بە بۆشایی جیایان بکەرەوە: 'class-1 class-2'. هەروەها دەتوانیت فەنکشنێک تێپەڕێنیت کە دەبێت یەک ڕیز بگەڕێنێتەوە کە ناوی پۆلی زیادەی تێدابێت.
delay ژمارە، شت 0 دواخستنی پیشاندانی و شاردنەوەی پۆپۆڤەر (ms)-بۆ جۆری دەستپێکەری دەستی ناگرێتەوە. ئەگەر ژمارەیەک دابین کرا، دواکەوتن بۆ هەردوو شاردنەوە/نیشاندان جێبەجێ دەکرێت. پێکهاتەی شت بریتییە لە: delay: { "show": 500, "hide": 100 }.
fallbackPlacements ڕستە، ڕیزبەندی ['top', 'right', 'bottom', 'left'] پێناسەی شوێنەکانی fallback بکە بە دابینکردنی لیستی شوێنەکان لە ڕیزبەندی (بە رێکوپێکی پەسەندکردن). بۆ زانیاری زیاتر سەردانی دۆکیومێنتەکانی هەڵسوکەوتی پۆپەر بکە .
html boolean false ڕێگە بە HTML بدە لە پۆپۆڤەرەکەدا. ئەگەر ڕاست بێت، تاگەکانی HTML لە popover's لە popover's titleدا ڕەندەر دەکرێن. ئەگەر هەڵە innerTextبێت، تایبەتمەندی بەکاردەهێنرێت بۆ دانانی ناوەڕۆک لە DOM. ئەگەر نیگەرانیت لە هێرشەکانی XSS دەق بەکاربهێنە.
offset ژمارە، ڕیز، فەنکشن [0, 0] ئۆفسێتی پۆپۆڤەر بە بەراورد بە ئامانجەکەی. دەتوانیت ڕستەیەک لە تایبەتمەندییەکانی داتادا بە بەها جیاکراوەکانی کۆما وەک: data-bs-offset="10,20". کاتێک فەنکشنێک بەکاردەهێنرێت بۆ دیاریکردنی ئۆفسێتەکە، بە ئۆبجێکتیک بانگ دەکرێت کە شوێنی پۆپەر و ئاماژە و پۆپەر rects وەک یەکەم ئارگومێنتی تێدایە. گرێی DOM ی توخمە دەستپێکەر وەک ئارگومێنتی دووەم دەگوازرێتەوە. فەنکشنەکە دەبێت ڕیزبەندییەک بگەڕێنێتەوە بە دوو ژمارەی: skidding , distance . بۆ زانیاری زیاتر سەردانی دۆکیومێنتەکانی ئۆفسێتی پۆپەر بکە .
placement ڕستە، فەنکشن 'top' چۆنێتی جێگیرکردنی پۆپۆڤەر: ئۆتۆ، سەرەوە، خوارەوە، چەپ، ڕاست. کاتێک autoدیاری دەکرێت، بە شێوەیەکی داینامیکی پەپۆڤەرەکە ئاڕاستە دەکاتەوە. کاتێک فەنکشنێک بەکاردەهێنرێت بۆ دیاریکردنی شوێنەکە، بانگ دەکرێت بە گرێی popover DOM وەک یەکەم ئارگومێنت و توخمە دەستپێکەرەکە گرێی DOM وەک دووەم. کۆنتێکستەکە thisبۆ نموونەی popover دانراوە.
popperConfig null، ئۆبجێکتی، فەنکشن null بۆ گۆڕینی ڕێکخستنی پێشوەختەی Popper ی Bootstrap، سەیری ڕێکخستنی Popper بکە . کاتێک فەنکشنێک بەکاردەهێنرێت بۆ دروستکردنی ڕێکخستنی Popper، بە شتێک بانگ دەکرێت کە ڕێکخستنی پێشوەختەی Popper ی Bootstrap لەخۆدەگرێت. یارمەتیت دەدات کە پێشوەختە لەگەڵ ڕێکخستنی خۆت بەکاربهێنیت و تێکەڵیان بکەیت. فەنکشنەکە دەبێت شتێکی ڕێکخستن بۆ Popper بگەڕێنێتەوە.
sanitize boolean true پاککردنەوەکە چالاک یان ناچالاک بکە. ئەگەر چالاک کرا 'template', 'content'و 'title'بژاردەکان پاک دەکرێنەوە.
sanitizeFn null، فەنکشن null لێرەدا دەتوانیت کارایی پاککردنەوەی خۆت دابین بکەیت. ئەمە دەتوانێت بەسوود بێت ئەگەر پێت باشە کتێبخانەی تایبەت بەکاربهێنیت بۆ ئەنجامدانی پاکوخاوێنی.
selector ڕستە، درۆ false ئەگەر هەڵبژێرەرێک دابین بکرێت، شتەکانی پۆپۆڤەر دەدرێنە ئامانجە دیاریکراوەکان. لە پراکتیکدا، ئەمە بەکاردێت بۆ هەروەها بەکارهێنانی popovers بۆ توخمەکانی DOM زیادکراوی داینامیکی ( jQuery.onپشتگیری). سەیری ئەم بابەتە بکە و نموونەیەکی زانیاری .
template ڕستە '<div class="popover" role="popover"><div class="popover-arrow"></div><div class="popover-inner"></div></div>' بنەمای HTML بۆ بەکارهێنان لە کاتی دروستکردنی popover. پۆپۆڤەرەکان titleدەدرێنە ناو .popover-inner. .popover-arrowدەبێتە تیری پۆپۆڤەر. دەرەوەترین توخمە پێچراوەکە دەبێت .popoverپۆل و role="popover".
title ڕیز، توخم، فەنکشن '' بەهای ناونیشانی پێشوەختە ئەگەر titleتایبەتمەندی ئامادە نەبێت. ئەگەر فەنکشنێک بدرێت، ئەوا بانگ دەکرێت بە thisڕێکخستنی ئاماژەکەی بۆ ئەو توخمە کە پۆپۆڤەرەکە پێیەوە لکێنراوە.
trigger ڕستە 'hover focus' چۆنێتی دەستپێکردنی پۆپۆڤەر: کلیک، هۆڤەر، فۆکەس، دەستی. لەوانەیە چەندین تریگەر تێپەڕێنیت؛ بە بۆشایییەک جیایان بکەرەوە. 'manual'ئاماژە بەوە دەکات کە پۆپۆڤەر بە شێوەیەکی بەرنامەیی لە ڕێگەی .popover('show'), .popover('hide')و .popover('toggle')شێوازەکانەوە دەستپێدەکات؛ ئەم بەهایە ناتوانرێت لەگەڵ هیچ تریگەرێکی تردا تێکەڵ بکرێت. 'hover'بە تەنیا دەبێتە هۆی پۆپۆڤەر کە ناتوانرێت لە ڕێگەی کیبۆردەوە دەستپێبکرێت، و تەنها پێویستە بەکاربهێنرێت کە ڕێگەی بەدیل بۆ گەیاندنی هەمان زانیاری بۆ بەکارهێنەرانی کیبۆرد هەبێت.

تایبەتمەندیەکانی داتا بۆ تاکە پۆپۆڤەرەکان

دەتوانرێت بژاردەکان بۆ تاکە پۆپۆڤەرەکان بە شێوەیەکی جێگرەوە لە ڕێگەی بەکارهێنانی تایبەتمەندییەکانی داتاوە دیاری بکرێت، وەک لە سەرەوە ڕوون کراوەتەوە.

بەکارهێنانی فەنکشن لەگەڵpopperConfig

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

شێوازەکان

شێواز و گواستنەوە ناهاوسەنگەکان

هەموو شێوازەکانی API ناهاوسەنگن و دەست بە گواستنەوە دەکەن . هەر کە گواستنەوەکە دەستی پێکرد بەڵام پێش ئەوەی کۆتایی بێت دەگەڕێنەوە لای پەیوەندیکەرەکە . سەرەڕای ئەوە، بانگەوازێکی شێواز لەسەر پێکهاتەیەکی گواستنەوە پشتگوێ دەخرێت .

بۆ زانیاری زیاتر سەیری بەڵگەنامەکانی جاڤاسکڕێپت بکە .

ڕێگا وەسف
disable توانای پیشاندانی پۆپۆڤەری توخمێک لا دەبات. popover تەنها لە حاڵەتێکدا دەتوانرێت پیشان بدرێت کە دووبارە چالاک بکرێتەوە.
dispose پاپۆڤەری توخمێک دەشارێتەوە و لەناویان دەبات (زانیاری هەڵگیراو لەسەر توخمەکەی DOM لا دەبات). ئەو پۆپۆڤەرانەی کە نوێنەرایەتی بەکاردەهێنن (کە بە بەکارهێنانی بژاردەی دروست دەکرێن ) selectorناتوانرێت بە تاک لەسەر توخمەکانی دەستپێکەری نەوە لەناوببرێن.
enable توانای پیشاندانی بە پۆپۆڤەری توخمێک دەدات. Popovers بە شێوازی پێشوەختە چالاک کراوە.
getInstance شێوازی ئیستاتیک کە ڕێگەت پێدەدات نموونەی popover بەدەست بهێنیت کە پەیوەندی بە توخمێکی DOMەوە هەیە.
getOrCreateInstance شێوازی ئیستاتیک کە ڕێگەت پێدەدات نموونەی popover بەدەست بهێنیت کە پەیوەندی بە توخمێکی DOMەوە هەیە، یان یەکێکی نوێ دروست بکەیت لە ئەگەری دەستپێنەکردندا.
hide پۆپۆڤەری توخمێک دەشارێتەوە. پێش ئەوەی لە ڕاستیدا پۆپۆڤەرەکە بشاردرێتەوە (واتە پێش ئەوەی hidden.bs.popoverڕووداوەکە ڕووبدات) دەگەڕێتەوە بۆ پەیوەندیکەر. ئەمەش بە دەستپێکردنی "دەستی" پۆپۆڤەر دادەنرێت.
setContent ڕێگەیەک دەدات بۆ گۆڕینی ناوەڕۆکی popover دوای دەستپێکردنی.
show پۆپۆڤەری توخمێک ئاشکرا دەکات. پێش ئەوەی لە ڕاستیدا پۆپۆڤەرەکە پیشان بدرێت (واتە پێش ئەوەی shown.bs.popoverڕووداوەکە ڕووبدات) دەگەڕێتەوە بۆ پەیوەندیکەر. ئەمەش بە دەستپێکردنی "دەستی" پۆپۆڤەر دادەنرێت. ئەو پۆپۆڤەرانەی کە ناونیشان و ناوەڕۆکیان هەردووکیان درێژی سفرە هەرگیز پیشان نادرێن.
toggle پۆپۆڤەری توخمێک دەگۆڕێت. دەگەڕێتەوە بۆ پەیوەندیکەر پێش ئەوەی لە ڕاستیدا popover پیشان بدرێت یان بشاردرێتەوە (واتە پێش ئەوەی ڕووداوی shown.bs.popoverیان hidden.bs.popoverڕووبدات). ئەمەش بە دەستپێکردنی "دەستی" پۆپۆڤەر دادەنرێت.
toggleEnabled توانای پیشاندانی یان شاردنەوەی پۆپۆڤەری توخمێک دەگۆڕێت.
update شوێنی پۆپۆڤەری توخمێک نوێ دەکاتەوە.
// 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'
})
شێوازەکە ئارگومێنتێک setContentقبوڵ دەکات object، کە هەر کلیلێکی تایبەتمەندی stringهەڵبژێرەرێکی دروستە لەناو قاڵبی popover، و هەر بەهای تایبەتمەندی پەیوەندیدار دەتوانێت string| element| function| null

ڕووداوەکان

پێشهات وەسف
hide.bs.popover ئەم ڕووداوە دەستبەجێ ئاگر دەکرێتەوە کاتێک hideشێوازی نموونە بانگ کراوە.
hidden.bs.popover ئەم ڕووداوە کاتێک تەقە دەکرێت کە popover تەواو بوو لە شاردنەوە لە بەکارهێنەر (چاوەڕوان دەکات تا گواستنەوەکانی CSS تەواو دەبن).
inserted.bs.popover ئەم ڕووداوە دوای show.bs.popoverڕووداوەکە کاتێک قاڵبی popover زیاد کراوە بۆ DOM کاردەکاتە دەرەوە.
show.bs.popover ئەم ڕووداوە دەستبەجێ ئاگر دەبێتەوە کاتێک showشێوازی نموونە بانگ دەکرێت.
shown.bs.popover ئەم ڕووداوە کاتێک ئاگر دەکرێتەوە کە پۆپۆڤەرەکە بۆ بەکارهێنەر دیار بێت (چاوەڕێی تەواوبوونی گواستنەوەکانی CSS دەکات).
const myPopoverTrigger = document.getElementById('myPopover')
myPopoverTrigger.addEventListener('hidden.bs.popover', () => {
  // do something...
})