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

مۆداڵی

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

چۆن کاردەکات

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

  • مۆداڵەکان بە HTML و CSS و JavaScript دروست دەکرێن. ئەوان لەسەر هەموو شتێکی تر لە بەڵگەنامەکەدا دانراون و سکڕۆڵەکە لادەبەن بۆ <body>ئەوەی ناوەڕۆکی مۆداڵی لەبری ئەوە سکڕۆڵ بکات.
  • کلیککردن لەسەر مۆداڵی “backdrop” بە شێوەیەکی ئۆتۆماتیکی مۆداڵەکە دادەخات.
  • Bootstrap تەنها پشتگیری لە یەک پەنجەرەی مۆداڵی دەکات لە یەک کاتدا. مۆداڵی هێلانەکراو پشتگیری ناکرێت چونکە ئێمە پێمان وایە ئەزموونی بەکارهێنەری خراپە.
  • مۆداڵەکان position: fixed, بەکاردەهێنن کە هەندێک جار دەتوانێت کەمێک تایبەت بێت سەبارەت بە ڕەندەرکردنی. هەرکاتێک دەتوانیت، HTML مۆداڵیەکەت لە شوێنێکی ئاست بەرزدا دابنێ بۆ ئەوەی دەستێوەردانی ئەگەری توخمەکانی تر نەبێت. بە ئەگەرێکی زۆرەوە تووشی کێشە دەبیت کاتێک هێلانەکردنی a .modalلەناو توخمێکی جێگیرێکی تردا.
  • جارێکی تر بەهۆی position: fixed, هەندێک ئاگادارکردنەوە هەیە لەگەڵ بەکارهێنانی مۆداڵەکان لەسەر ئامێرە مۆبایلەکان. بۆ زانیاری زیاتر سەیری دۆکیومێنتەکانی پشتگیری وێبگەڕەکەمان بکە.
  • بەهۆی چۆنێتی پێناسەکردنی HTML5 ماناکانی، تایبەتمەندی autofocusHTML هیچ کاریگەرییەکی نییە لە مۆداڵی Bootstrap. بۆ بەدەستهێنانی هەمان کاریگەری، هەندێک جاڤاسکڕێپتی تایبەت بەکاربهێنە:
const myModal = document.getElementById('myModal')
const myInput = document.getElementById('myInput')

myModal.addEventListener('shown.bs.modal', () => {
  myInput.focus()
})
کاریگەری ئەنیمەیشنی ئەم پێکهاتەیە وابەستەی prefers-reduced-motionپرسیاری میدیایە. سەیری بەشی جووڵەی کەمکراوە بکە لە بەڵگەنامەکانی دەستڕاگەیشتنمان .

بەردەوام بە لە خوێندنەوە بۆ دیمۆ و ڕێنماییەکانی بەکارهێنان.

نموونە

لە خوارەوە نموونەیەکی مۆداڵی ئیستاتیک (بە واتای ئەو positionو displayسەرپێچی کراون). لەخۆدەگرێت سەردێڕی مۆداڵی، جەستەی مۆداڵی (پێویستە بۆ padding)، و پێی مۆداڵی (ئیختیاری). ئێمە داوا دەکەین کە هەرکاتێک بتوانیت سەردێڕی مۆداڵی لەگەڵ کردارەکانی ڕەتکردنەوەدا بخەیتە ناوەوە، یان کردارێکی تری ڕەتکردنەوەی ڕوون پێشکەش بکەیت.

<div class="modal" tabindex="-1">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title">Modal title</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <div class="modal-body">
        <p>Modal body text goes here.</p>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

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

دیمۆیەکی مۆداڵی کارکردن بگۆڕە بە کرتەکردن لەسەر دوگمەی خوارەوە. لە سەرەوەی لاپەڕەکەوە دەخلیسکێتە خوارەوە و کاڵ دەبێتەوە.

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal">
  Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

باکگراوندی ئیستاتیک

کاتێک backdrop لەسەر static دانراوە، مۆداڵەکە داناخرێت لەکاتی کلیککردن لە دەرەوەی. بۆ تاقیکردنەوەی کلیک لەسەر دوگمەی خوارەوە بکە.

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#staticBackdrop">
  Launch static backdrop modal
</button>

<!-- Modal -->
<div class="modal fade" id="staticBackdrop" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="staticBackdropLabel">Modal title</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Understood</button>
      </div>
    </div>
  </div>
</div>

سکڕۆڵکردنی ناوەڕۆکی درێژ

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

هەروەها دەتوانیت مۆداڵێکی سکڕۆڵ دروست بکەیت کە ڕێگە بە سکڕۆڵکردنی جەستەی مۆداڵی دەدات بە زیادکردنی .modal-dialog-scrollableبۆ .modal-dialog.

<!-- Scrollable modal -->
<div class="modal-dialog modal-dialog-scrollable">
  ...
</div>

بە شێوەی ڕاست ناوەندە

زیاد بکە .modal-dialog-centeredبۆ .modal-dialogبۆ ئەوەی بە شێوەیەکی ڕاست ناوەڕاستی مۆداڵەکە بێت.

<!-- Vertically centered modal -->
<div class="modal-dialog modal-dialog-centered">
  ...
</div>

<!-- Vertically centered scrollable modal -->
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable">
  ...
</div>

ئامرازەکان و پۆپۆڤەرەکان

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

<div class="modal-body">
  <h5>Popover in a modal</h5>
  <p>This <a href="#" role="button" class="btn btn-secondary" data-bs-toggle="popover" title="Popover title" data-bs-content="Popover body content is set in this attribute.">button</a> triggers a popover on click.</p>
  <hr>
  <h5>Tooltips in a modal</h5>
  <p><a href="#" data-bs-toggle="tooltip" title="Tooltip">This link</a> and <a href="#" data-bs-toggle="tooltip" title="Tooltip">that link</a> have tooltips on hover.</p>
</div>

بەکارهێنانی تۆڕەکە

بەکارهێنانی سیستەمی تۆڕی Bootstrap لەناو مۆداڵێکدا بە هێلانەکردن .container-fluidلەناو .modal-body. پاشان، پۆلەکانی سیستەمی تۆڕی ئاسایی وەک لە هەر شوێنێکی تر بەکاری بهێنە.

<div class="modal-body">
  <div class="container-fluid">
    <div class="row">
      <div class="col-md-4">.col-md-4</div>
      <div class="col-md-4 ms-auto">.col-md-4 .ms-auto</div>
    </div>
    <div class="row">
      <div class="col-md-3 ms-auto">.col-md-3 .ms-auto</div>
      <div class="col-md-2 ms-auto">.col-md-2 .ms-auto</div>
    </div>
    <div class="row">
      <div class="col-md-6 ms-auto">.col-md-6 .ms-auto</div>
    </div>
    <div class="row">
      <div class="col-sm-9">
        Level 1: .col-sm-9
        <div class="row">
          <div class="col-8 col-sm-6">
            Level 2: .col-8 .col-sm-6
          </div>
          <div class="col-4 col-sm-6">
            Level 2: .col-4 .col-sm-6
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

جیاوازی ناوەڕۆکی مۆداڵی

کۆمەڵێک دوگمەت هەیە کە هەموویان هەمان مۆداڵی بە ناوەڕۆکی کەمێک جیاوازەوە دەستپێدەکات؟ تایبەتمەندیەکانی بەکارهێنان event.relatedTargetو HTMLdata-bs-* بۆ گۆڕینی ناوەڕۆکی مۆداڵەکە بەپێی ئەوەی کام دوگمە کرتە کراوە.

لە خوارەوە دیمۆیەکی ڕاستەوخۆ هەیە و دواتر نموونەی HTML و جاڤاسکڕێپت. بۆ زانیاری زیاتر، دۆکیومێنتەکانی ڕووداوە مۆداڵییەکان بخوێنەرەوە بۆ زانیاری زیاتر لەسەر relatedTarget.

html
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal" data-bs-whatever="@mdo">Open modal for @mdo</button>
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal" data-bs-whatever="@fat">Open modal for @fat</button>
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal" data-bs-whatever="@getbootstrap">Open modal for @getbootstrap</button>

<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">New message</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <div class="modal-body">
        <form>
          <div class="mb-3">
            <label for="recipient-name" class="col-form-label">Recipient:</label>
            <input type="text" class="form-control" id="recipient-name">
          </div>
          <div class="mb-3">
            <label for="message-text" class="col-form-label">Message:</label>
            <textarea class="form-control" id="message-text"></textarea>
          </div>
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Send message</button>
      </div>
    </div>
  </div>
</div>
const exampleModal = document.getElementById('exampleModal')
exampleModal.addEventListener('show.bs.modal', event => {
  // Button that triggered the modal
  const button = event.relatedTarget
  // Extract info from data-bs-* attributes
  const recipient = button.getAttribute('data-bs-whatever')
  // If necessary, you could initiate an AJAX request here
  // and then do the updating in a callback.
  //
  // Update the modal's content.
  const modalTitle = exampleModal.querySelector('.modal-title')
  const modalBodyInput = exampleModal.querySelector('.modal-body input')

  modalTitle.textContent = `New message to ${recipient}`
  modalBodyInput.value = recipient
})

لە نێوان مۆداڵەکاندا بگۆڕە

لە نێوان چەندین مۆداڵدا بگۆڕە بە هەندێک دانانی زیرەکی تایبەتمەندیەکانی data-bs-targetو data-bs-toggle. بۆ نموونە دەتوانیت مۆداڵی ڕێستکردنی وشەی نهێنی لە ناو مۆداڵی چوونەژوورەوەی پێشتر کراوەوە بگۆڕیت. تکایە تێبینی بکە ناتوانرێت چەندین مۆداڵی لە یەک کاتدا بکرێتەوە —ئەم شێوازە بە سادەیی لە نێوان دوو مۆداڵی جیاوازدا دەگۆڕێت.

یەکەم مۆداڵی بکەرەوە
html
<div class="modal fade" id="exampleModalToggle" aria-hidden="true" aria-labelledby="exampleModalToggleLabel" tabindex="-1">
  <div class="modal-dialog modal-dialog-centered">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalToggleLabel">Modal 1</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <div class="modal-body">
        Show a second modal and hide this one with the button below.
      </div>
      <div class="modal-footer">
        <button class="btn btn-primary" data-bs-target="#exampleModalToggle2" data-bs-toggle="modal">Open second modal</button>
      </div>
    </div>
  </div>
</div>
<div class="modal fade" id="exampleModalToggle2" aria-hidden="true" aria-labelledby="exampleModalToggleLabel2" tabindex="-1">
  <div class="modal-dialog modal-dialog-centered">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalToggleLabel2">Modal 2</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <div class="modal-body">
        Hide this modal and show the first with the button below.
      </div>
      <div class="modal-footer">
        <button class="btn btn-primary" data-bs-target="#exampleModalToggle" data-bs-toggle="modal">Back to first</button>
      </div>
    </div>
  </div>
</div>
<a class="btn btn-primary" data-bs-toggle="modal" href="#exampleModalToggle" role="button">Open first modal</a>

ئەنیمەیشن بگۆڕە

$modal-fade-transformگۆڕاوەکە دۆخی گۆڕینی پێش .modal-dialogئەنیمەیشنی کاڵبوونەوەی مۆداڵی $modal-show-transformدیاری دەکات، گۆڕاوەکە گۆڕینی .modal-dialogلە کۆتایی ئەنیمەیشنی کاڵبوونەوەی مۆداڵی دیاری دەکات.

ئەگەر بۆ نموونە ئەنیمەیشنێکی زوومکردنت دەوێت، دەتوانیت $modal-fade-transform: scale(.8).

ئەنیمەیشن لاببە

بۆ ئەو مۆداڵانەی کە بە سادەیی دەردەکەون نەک کاڵ ببنەوە بۆ بینین، .fadeپۆلەکە لە نیشانە مۆداڵەکەت دەربهێنە.

<div class="modal" tabindex="-1" aria-labelledby="..." aria-hidden="true">
  ...
</div>

بەرزییە داینامیکیەکان

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

دەستڕاگەیشتن

دڵنیابە کە زیاد بکە aria-labelledby="..."، بە ئاماژەدان بە ناونیشانی مۆداڵی، بۆ .modal. سەرەڕای ئەوە، دەتوانیت وەسفێک لە دیالۆگی مۆداڵی خۆت بدەیت بە aria-describedbyon .modal. تێبینی بکە پێویست ناکات زیاد بکەیت role="dialog"لەبەر ئەوەی پێشتر لە ڕێگەی جاڤاسکڕێپتەوە زیادمان کردووە.

جێگیرکردنی ڤیدیۆکانی یوتیوب

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

قەبارەی ئیختیاری

مۆداڵەکان سێ قەبارەی هەڵبژاردەیان هەیە، لە ڕێگەی پۆلەکانی دەستکاریکەرەوە بەردەستە بۆ ئەوەی لەسەر .modal-dialog. ئەم قەبارەیانە لە هەندێک خاڵی شکاندندا دەچنە ناوەوە بۆ ئەوەی لە سکڕۆڵباری ئاسۆیی لەسەر دەرچەی بینینی تەسکتر نەبێت.

قەبارە پۆل مۆداڵی زۆرترین پانایی
بچووک .modal-sm 300px
بنەڕەتی هیچ 500px
گەورە .modal-lg 800px
گەورەیەکی زیادە .modal-xl 1140px

مۆداڵی پێشوەختەی ئێمە بەبێ پۆلی دەستکاریکەر مۆداڵی قەبارەی "ناوەند" پێکدەهێنێت.

<div class="modal-dialog modal-xl">...</div>
<div class="modal-dialog modal-lg">...</div>
<div class="modal-dialog modal-sm">...</div>

مۆداڵی تەواوی شاشە

یەکێکی تر لە سەرپێچیکردن بژاردەی دەرکەوتنی مۆداڵێکە کە دەرچەی بینینی بەکارهێنەر دەگرێتەوە، کە لە ڕێگەی پۆلەکانی دەستکاریکەرەوە بەردەستە کە لەسەر .modal-dialog.

پۆل بەردەست بوونی
.modal-fullscreen گشت کاتێک
.modal-fullscreen-sm-down 576px
.modal-fullscreen-md-down 768px
.modal-fullscreen-lg-down 992px
.modal-fullscreen-xl-down 1200px
.modal-fullscreen-xxl-down 1400px
<!-- Full screen modal -->
<div class="modal-dialog modal-fullscreen-sm-down">
  ...
</div>

CSS

گۆڕاوەکان

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

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

  --#{$prefix}modal-zindex: #{$zindex-modal};
  --#{$prefix}modal-width: #{$modal-md};
  --#{$prefix}modal-padding: #{$modal-inner-padding};
  --#{$prefix}modal-margin: #{$modal-dialog-margin};
  --#{$prefix}modal-color: #{$modal-content-color};
  --#{$prefix}modal-bg: #{$modal-content-bg};
  --#{$prefix}modal-border-color: #{$modal-content-border-color};
  --#{$prefix}modal-border-width: #{$modal-content-border-width};
  --#{$prefix}modal-border-radius: #{$modal-content-border-radius};
  --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-xs};
  --#{$prefix}modal-inner-border-radius: #{$modal-content-inner-border-radius};
  --#{$prefix}modal-header-padding-x: #{$modal-header-padding-x};
  --#{$prefix}modal-header-padding-y: #{$modal-header-padding-y};
  --#{$prefix}modal-header-padding: #{$modal-header-padding}; // Todo in v6: Split this padding into x and y
  --#{$prefix}modal-header-border-color: #{$modal-header-border-color};
  --#{$prefix}modal-header-border-width: #{$modal-header-border-width};
  --#{$prefix}modal-title-line-height: #{$modal-title-line-height};
  --#{$prefix}modal-footer-gap: #{$modal-footer-margin-between};
  --#{$prefix}modal-footer-bg: #{$modal-footer-bg};
  --#{$prefix}modal-footer-border-color: #{$modal-footer-border-color};
  --#{$prefix}modal-footer-border-width: #{$modal-footer-border-width};
  
  --#{$prefix}backdrop-zindex: #{$zindex-modal-backdrop};
  --#{$prefix}backdrop-bg: #{$modal-backdrop-bg};
  --#{$prefix}backdrop-opacity: #{$modal-backdrop-opacity};
  

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

$modal-inner-padding:               $spacer;

$modal-footer-margin-between:       .5rem;

$modal-dialog-margin:               .5rem;
$modal-dialog-margin-y-sm-up:       1.75rem;

$modal-title-line-height:           $line-height-base;

$modal-content-color:               null;
$modal-content-bg:                  $white;
$modal-content-border-color:        var(--#{$prefix}border-color-translucent);
$modal-content-border-width:        $border-width;
$modal-content-border-radius:       $border-radius-lg;
$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width);
$modal-content-box-shadow-xs:       $box-shadow-sm;
$modal-content-box-shadow-sm-up:    $box-shadow;

$modal-backdrop-bg:                 $black;
$modal-backdrop-opacity:            .5;

$modal-header-border-color:         var(--#{$prefix}border-color);
$modal-header-border-width:         $modal-content-border-width;
$modal-header-padding-y:            $modal-inner-padding;
$modal-header-padding-x:            $modal-inner-padding;
$modal-header-padding:              $modal-header-padding-y $modal-header-padding-x; // Keep this for backwards compatibility

$modal-footer-bg:                   null;
$modal-footer-border-color:         $modal-header-border-color;
$modal-footer-border-width:         $modal-header-border-width;

$modal-sm:                          300px;
$modal-md:                          500px;
$modal-lg:                          800px;
$modal-xl:                          1140px;

$modal-fade-transform:              translate(0, -50px);
$modal-show-transform:              none;
$modal-transition:                  transform .3s ease-out;
$modal-scale-transform:             scale(1.02);

ئەڵقە

مۆداڵی تەواوی شاشەی وەڵامدەرەوە لە ڕێگەی $breakpointsنەخشەکە و لوپێکەوە لە scss/_modal.scss.

@each $breakpoint in map-keys($grid-breakpoints) {
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
  $postfix: if($infix != "", $infix + "-down", "");

  @include media-breakpoint-down($breakpoint) {
    .modal-fullscreen#{$postfix} {
      width: 100vw;
      max-width: none;
      height: 100%;
      margin: 0;

      .modal-content {
        height: 100%;
        border: 0;
        @include border-radius(0);
      }

      .modal-header,
      .modal-footer {
        @include border-radius(0);
      }

      .modal-body {
        overflow-y: auto;
      }
    }
  }
}

بەکارهێنان

پێوەکراوەکەی مۆداڵی ناوەڕۆکی شاراوەت لەسەر داواکاری دەگۆڕێت، لە ڕێگەی تایبەتمەندیەکانی داتا یان جاڤاسکڕێپتەوە. هەروەها هەڵسوکەوتی سکڕۆڵکردنی پێشوەختە دەسڕێتەوە و a دروست دەکات .modal-backdropبۆ دابینکردنی ناوچەیەکی کلیک بۆ ڕەتکردنەوەی مۆداڵی پیشان دراو کاتێک کلیک لە دەرەوەی مۆداڵەکە دەکرێت.

لە ڕێگەی تایبەتمەندییەکانی داتا

تۆگڵ بکە

مۆداڵێک چالاک بکە بەبێ نووسینی جاڤاسکڕێپت. لەسەر توخمێکی کۆنترۆڵکەر دابنێ data-bs-toggle="modal"، وەک دوگمەیەک، لەگەڵ data-bs-target="#foo"یان href="#foo"بۆ بە ئامانجگرتنی مۆداڵێکی دیاریکراو بۆ گۆڕینی.

<button type="button" data-bs-toggle="modal" data-bs-target="#myModal">Launch modal</button>

بەلاوە نان

دەتوانرێت دەرکردن بە dataتایبەتمەندی لەسەر دوگمەیەک لەناو مۆداڵەکەدا بەدەست بهێنرێت وەک لە خوارەوە نیشان دراوە:

<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>

یان لەسەر دوگمەیەک لە دەرەوەی مۆداڵەکە بە بەکارهێنانی data-bs-targetوەک لە خوارەوە نیشان دراوە:

<button type="button" class="btn-close" data-bs-dismiss="modal" data-bs-target="#my-modal" aria-label="Close"></button>
لە کاتێکدا هەردوو ڕێگا بۆ ڕەتکردنەوەی مۆداڵێک پشتگیری دەکرێن، لەبیرت بێت کە ڕەتکردنەوەی لە دەرەوەی مۆداڵێک لەگەڵ نەخشی دیالۆگی ڕێبەری پراکتیکەکانی نووسینی ARIA (مۆداڵی) ناگونجێت . ئەم کارە لەسەر مەترسی خۆت ئەنجام بدە.

لە ڕێگەی جاڤاسکڕێپتەوە

مۆداڵێک دروست بکە بە یەک دێڕی جاڤاسکڕێپت:

const myModal = new bootstrap.Modal(document.getElementById('myModal'), options)
// or
const myModalAlternative = new bootstrap.Modal('#myModal', options)

بژاردەکان

بەو پێیەی دەتوانرێت هەڵبژاردنەکان لە ڕێگەی تایبەتمەندییەکانی داتا یان جاڤاسکڕێپتەوە تێپەڕێنرێت، دەتوانیت ناوی هەڵبژاردنێک زیاد بکەیت بۆ 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}'.

ناو جۆر بنەڕەتی وەسف
backdrop boolean,'static' true توخمێکی مۆداڵی-باکگراوند لەخۆدەگرێت. یانیش staticبۆ باکگراوندێک دیاری بکە کە مۆداڵەکە داناخات کاتێک کلیک دەکرێت.
focus boolean true فۆکەس دەخاتە سەر مۆداڵی کاتێک دەستپێدەکات.
keyboard boolean true مۆداڵی دادەخات کاتێک کلیلی escape دەکرێت.

شێوازەکان

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

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

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

بژاردەکانی تێپەڕاندن

ناوەڕۆکەکەت وەک مۆداڵ چالاک دەکات. بژاردەیەکی ئیختیاری قبوڵ دەکات object.

const myModal = new bootstrap.Modal('#myModal', {
  keyboard: false
})
ڕێگا وەسف
dispose مۆداڵی توخمێک لەناو دەبات. (زانیاری هەڵگیراو لەسەر توخمەکەی DOM لا دەبات)
getInstance شێوازی ئیستاتیک کە ڕێگەت پێدەدات نموونەی مۆداڵی پەیوەست بە توخمێکی DOM بەدەستبهێنیت.
getOrCreateInstance شێوازی ئیستاتیک کە ڕێگەت پێدەدات نموونەی مۆداڵی پەیوەست بە توخمێکی DOM بەدەستبهێنیت، یان یەکێکی نوێ دروست بکەیت لە ئەگەری دەستپێنەکردندا.
handleUpdate بە دەست شوێنی مۆداڵەکە ڕێکبخەرەوە ئەگەر بەرزی مۆداڵێک بگۆڕێت لەکاتێکدا کراوە بێت (واتە لە ئەگەری دەرکەوتنی سکڕۆڵبار).
hide بە دەستی مۆداڵێک دەشارێتەوە. پێش ئەوەی مۆداڵەکە لە ڕاستیدا بشاردرێتەوە (واتە پێش ئەوەی hidden.bs.modalڕووداوەکە ڕووبدات) دەگەڕێتەوە بۆ پەیوەندیکەر.
show بە دەستی مۆداڵێک دەکاتەوە. پێش ئەوەی مۆداڵەکە بەڕاستی پیشان بدرێت دەگەڕێتەوە بۆ پەیوەندیکەر (واتە پێش ئەوەی shown.bs.modalڕووداوەکە ڕووبدات). هەروەها دەتوانیت توخمێکی DOM وەک ئارگومێنتێک تێپەڕێنیت کە دەتوانرێت لە ڕووداوە مۆداڵەکاندا وەربگیرێت (وەک relatedTargetتایبەتمەندییەکە). (واتە const modalToggle = document.getElementById('toggleMyModal'); myModal.show(modalToggle).
toggle بە دەست مۆداڵێک دەگۆڕێت. دەگەڕێتەوە بۆ پەیوەندیکەر پێش ئەوەی مۆداڵەکە لە ڕاستیدا پیشان بدرێت یان بشاردرێتەوە (واتە پێش ئەوەی ڕووداوی shown.bs.modalیان hidden.bs.modalڕووبدات).

ڕووداوەکان

پۆلی مۆداڵی بووتستراپ چەند ڕووداوێک ئاشکرا دەکات بۆ پەیوەستکردن بە کارایی مۆداڵی. هەموو ڕووداوە مۆداڵییەکان لە خودی مۆداڵەکەدا تەقە دەکرێن (واتە لە <div class="modal">).

پێشهات وەسف
hide.bs.modal ئەم ڕووداوە دەستبەجێ ئاگر دەکرێتەوە کاتێک hideشێوازی نموونە بانگ کراوە.
hidden.bs.modal ئەم ڕووداوە کاتێک ئاگر دەکرێتەوە کە مۆداڵەکە تەواو بوو لە شاردنەوە لە بەکارهێنەر (چاوەڕوان دەکات تا گواستنەوەکانی CSS تەواو دەبن).
hidePrevented.bs.modal ئەم ڕووداوە کاتێک تەقە دەکرێت کە مۆداڵەکە پیشان دەدرێت، باکگراوندەکەی دەبێت staticو کلیکێک لە دەرەوەی مۆداڵەکە ئەنجام دەدرێت. هەروەها ڕووداوەکە کاتێک ئاگر دەکرێتەوە کە کلیلی هەڵهاتن فشار بخرێتە سەر و keyboardبژاردەکە لەسەر false.
show.bs.modal ئەم ڕووداوە دەستبەجێ ئاگر دەبێتەوە کاتێک showشێوازی نموونە بانگ دەکرێت. ئەگەر بەهۆی کلیکێکەوە بێت، ئەوا توخمە کلیککراوەکە وەک relatedTargetتایبەتمەندی ڕووداوەکە بەردەستە.
shown.bs.modal ئەم ڕووداوە کاتێک ئاگر دەکرێتەوە کە مۆداڵەکە بۆ بەکارهێنەر دیار کراوە (چاوەڕێی تەواوبوونی گواستنەوەکانی CSS دەکات). ئەگەر بەهۆی کلیکێکەوە بێت، ئەوا توخمە کلیککراوەکە وەک relatedTargetتایبەتمەندی ڕووداوەکە بەردەستە.
const myModalEl = document.getElementById('myModal')
myModalEl.addEventListener('hidden.bs.modal', event => {
  // do something...
})