تخطي إلى المحتوى الرئيسي انتقل إلى ملاحة المستندات
Check
in English

مشروط

استخدم المكوِّن الإضافي المشروط لجافا سكريبت في Bootstrap لإضافة مربعات حوار إلى موقعك من أجل الصناديق المبسطة أو إشعارات المستخدم أو المحتوى المخصص بالكامل.

كيف تعمل

قبل البدء في المكون النموذجي لـ Bootstrap ، تأكد من قراءة ما يلي حيث تغيرت خيارات القائمة الخاصة بنا مؤخرًا.

  • يتم إنشاء النماذج باستخدام HTML و CSS و JavaScript. يتم وضعهم فوق كل شيء آخر في المستند وإزالة التمرير من <body>بحيث يتم تمرير المحتوى الشرطي بدلاً من ذلك.
  • سيؤدي النقر فوق "الخلفية" المشروطة إلى إغلاق النموذج تلقائيًا.
  • لا يدعم Bootstrap سوى نافذة مشروطة واحدة في كل مرة. لا يتم دعم النماذج المتداخلة لأننا نعتقد أنها تجارب مستخدم سيئة.
  • تستخدم الوسائط position: fixed، والتي يمكن أن تكون في بعض الأحيان خاصة بعض الشيء حول عرضها. كلما كان ذلك ممكنًا ، ضع HTML الشرطي في موضع المستوى الأعلى لتجنب التداخل المحتمل من العناصر الأخرى. من المحتمل أن تواجه مشكلات عند تضمين عنصر .modalداخل عنصر ثابت آخر.
  • مرة أخرى ، نظرًا position: fixedلوجود بعض المحاذير المتعلقة باستخدام الوسائط على الأجهزة المحمولة. راجع مستندات دعم المتصفح للحصول على التفاصيل.
  • نظرًا للكيفية التي تحدد بها HTML5 دلالاتها ، فإن autofocusسمة HTML ليس لها أي تأثير في أشكال Bootstrap. لتحقيق نفس التأثير ، استخدم بعض JavaScript المخصص:
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>

خلفية ثابتة

عند ضبط الخلفية على ثابت ، لن يتم إغلاق النموذج عند النقر خارجها. انقر فوق الزر أدناه لتجربته.

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

تلميحات الأدوات و popovers

يمكن وضع تلميحات الأدوات والأدوات المنبثقة داخل نماذج حسب الحاجة. عند إغلاق النماذج ، يتم أيضًا رفض أي تلميحات أدوات ومنبثقة بداخلها تلقائيًا.

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

محتوى مشروط متنوع

هل لديك مجموعة من الأزرار التي تؤدي جميعها إلى نفس النموذج بمحتويات مختلفة قليلاً؟ استخدم سمات HTMLevent.relatedTarget و HTML لتغيير محتويات النموذج بناءً على الزر الذي تم النقر عليه.data-bs-*

يوجد أدناه عرض توضيحي مباشر متبوعًا بمثال HTML و JavaScript. لمزيد من المعلومات ، اقرأ مستندات الأحداث المشروطة للحصول على تفاصيل حول relatedTarget.

لغة البرمجة
<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على سبيل المثال ، يمكنك تبديل وضع إعادة تعيين كلمة المرور من خلال نموذج تسجيل دخول مفتوح بالفعل. يرجى ملاحظة أنه لا يمكن فتح العديد من الوسائط في نفس الوقت - فهذه الطريقة تقوم ببساطة بالتبديل بين شكلين منفصلين.

فتح النموذج الأول
لغة البرمجة
<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-describedbyباستخدام .modal. لاحظ أنك لست بحاجة إلى الإضافة role="dialog"لأننا نضيفها بالفعل عبر JavaScript.

تضمين أشرطة فيديو يوتيوب

يتطلب تضمين مقاطع فيديو YouTube في النماذج وجود JavaScript إضافي غير موجود في Bootstrap لإيقاف التشغيل تلقائيًا والمزيد. راجع منشور 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

المتغيرات

تمت الإضافة في الإصدار 5.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;
      }
    }
  }
}

إستعمال

يقوم المكون الإضافي المشروط بتبديل المحتوى المخفي عند الطلب ، عبر سمات البيانات أو JavaScript. كما أنه يتجاوز سلوك التمرير الافتراضي وينشئ .modal-backdropمنطقة نقرة لرفض الأشكال المعروضة عند النقر خارج النموذج.

عبر سمات البيانات

تبديل

تنشيط مشروط دون كتابة JavaScript. قم بتعيين 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 (النموذجي) . أفعل هذا على مسؤوليتك.

عبر JavaScript

قم بإنشاء مشروط بسطر واحد من JavaScript:

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

خيارات

نظرًا لأنه يمكن تمرير الخيارات عبر سمات البيانات أو JavaScript ، يمكنك إلحاق اسم خيار بـ 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"النهائية وستتجاوز سمات البيانات المنفصلة القيم المعطاة . بالإضافة إلى ذلك ، يمكن لسمات البيانات الحالية استيعاب قيم JSON مثل .title456data-bs-configdata-bs-delay='{"show":0,"hide":150}'

اسم يكتب تقصير وصف
backdrop منطقي'static' true يتضمن عنصر خلفية مشروط. بدلاً من ذلك ، حدد staticخلفية لا تغلق النموذج عند النقر فوقه.
focus قيمة منطقية true يضع التركيز على الوضع عند التهيئة.
keyboard قيمة منطقية true يغلق المشروط عند الضغط على مفتاح الهروب.

طُرق

الطرق غير المتزامنة والانتقالات

جميع طرق API غير متزامنة وتبدأ في الانتقال . يعودون إلى المتصل بمجرد بدء الانتقال ولكن قبل أن ينتهي . بالإضافة إلى ذلك ، سيتم تجاهل استدعاء طريقة على مكون انتقالي .

راجع وثائق JavaScript الخاصة بنا للحصول على مزيد من المعلومات .

خيارات التمرير

ينشط المحتوى الخاص بك كمشروط. يقبل الخيارات الاختيارية 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

الأحداث

تكشف فئة مشروط Bootstrap عن بعض الأحداث للتثبيت في وظائف مشروطة. يتم إطلاق جميع الأحداث المشروطة على الوسائط نفسها (أي في <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...
})