Saltu al ĉefa enhavo Saltu al navigado de dokumentoj
Check
in English

Modala

Uzu la JavaScript modalan kromprogramon de Bootstrap por aldoni dialogojn al via retejo por lumkestoj, sciigoj de uzantoj aŭ tute laŭmenda enhavo.

Kiel ĝi funkcias

Antaŭ ol komenci kun la modala komponanto de Bootstrap, nepre legu la jenajn, ĉar niaj menuaj opcioj lastatempe ŝanĝiĝis.

  • Modaloj estas konstruitaj per HTML, CSS kaj JavaScript. Ili estas poziciigitaj super ĉio alia en la dokumento kaj forigas rulilon de la <body>por ke modala enhavo rulu anstataŭe.
  • Klako sur la modala "fono" aŭtomate fermos la modalon.
  • Bootstrap nur subtenas unu modalan fenestron samtempe. Nestitaj modaloj ne estas subtenataj ĉar ni kredas, ke ili estas malbonaj uzantspertoj.
  • Modaloj uzas position: fixed, kiu foje povas esti iom aparta pri ĝia bildigo. Kiam ajn eblas, metu vian modalan HTML-on en plej altan pozicion por eviti eblan interferon de aliaj elementoj. Vi verŝajne renkontos problemojn dum nesto a.modal ene de alia fiksita elemento.
  • Denove, pro position: fixed, estas kelkaj avertoj pri uzado de modaloj en porteblaj aparatoj. Vidu nian retumilon subtendokumentojn por detaloj.
  • Pro kiel HTML5 difinas sian semantikon, la autofocusHTML-atributo ne efikas en Bootstrap-modaloj. Por atingi la saman efikon, uzu iun kutiman JavaScript:
const myModal = document.getElementById('myModal')
const myInput = document.getElementById('myInput')

myModal.addEventListener('shown.bs.modal', () => {
  myInput.focus()
})
La animacia efiko de ĉi tiu komponanto dependas de la prefers-reduced-motionamaskomunikila demando. Vidu la sekcion pri reduktita moviĝo de nia dokumentaro pri alirebleco .

Daŭre legu por pruvoj kaj uzgvidlinioj.

Ekzemploj

Malsupre estas senmova modala ekzemplo (signifante ĝiaj positionkaj displayestis anstataŭitaj). Inkluditaj estas la modala kaplinio, modala korpo (bezonata por padding), kaj modala piedlinio (laŭvola). Ni petas, ke vi enmetu modalaj kaplinioj kun malakceptaj agoj kiam ajn eblas, aŭ provizi alian eksplicitan forĵetan agon.

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

Viva demonstraĵo

Ŝaltu funkciantan modalan demonstraĵon alklakante la suban butonon. Ĝi glitos malsupren kaj velkos de la supro de la paĝo.

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

Senmova fono

Kiam fono estas fiksita al senmova, la modalo ne fermiĝos kiam oni klakas ekster ĝi. Alklaku la suban butonon por provi ĝin.

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

Movu longan enhavon

Kiam modaloj fariĝas tro longaj por la vidpunkto aŭ aparato de la uzanto, ili ruliĝas sendepende de la paĝo mem. Provu la demon sube por vidi kion ni volas diri.

Vi ankaŭ povas krei rulumeblan modalon kiu permesas rulumi la modalan korpon aldonante .modal-dialog-scrollableal .modal-dialog.

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

Vertikale centrita

Aldonu .modal-dialog-centeredal .modal-dialogpor vertikale centri la modalon.

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

Konsiletoj kaj popovers

Konsiletoj kaj popovers povas esti metitaj ene de modaloj laŭbezone. Kiam modaloj estas fermitaj, ĉiuj konsiletoj kaj popovers ene ankaŭ estas aŭtomate forĵetitaj.

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

Uzante la kradon

Uzu la Bootstrap kradsistemon ene de modalo per nestado .container-fluidene de la .modal-body. Poste, uzu la normalajn kradsistemajn klasojn kiel vi farus aliloke.

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

Varianta modala enhavo

Ĉu vi havas amason da butonoj, kiuj ĉiuj ekigas la saman modalon kun iomete malsama enhavo? Uzu event.relatedTargetkaj HTML- data-bs-*atributojn por variigi la enhavon de la modalo depende de kiu butono estis klakita.

Malsupre estas reala demo sekvata de ekzemplo HTML kaj JavaScript. Por pliaj informoj, legu la dokumentojn pri modalaj eventoj por detaloj pri 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
})

Ŝanĝu inter modaloj

Ŝanĝu inter multoblaj modaloj kun ioma saĝa lokigo de la data-bs-targetkaj data-bs-toggleatributoj. Ekzemple, vi povus ŝanĝi pasvortrestarigi modalon de ene de jam malfermita ensaluto modalo. Bonvolu noti ke pluraj modaloj ne povas esti malfermitaj samtempe — ĉi tiu metodo simple ŝanĝas inter du apartaj modaloj.

Malfermu unuan modalon
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>

Ŝanĝi kuraĝigon

La $modal-fade-transformvariablo determinas la transforman staton de .modal-dialogantaŭ la modala faden-en-animacio, la $modal-show-transformvariablo determinas la transformon de .modal-dialogĉe la fino de la modala faden-en-animacio.

Se vi volas ekzemple zooman animacion, vi povas agordi $modal-fade-transform: scale(.8).

Forigi kuraĝigon

Por modaloj kiuj simple aperas prefere ol fadi por vidi, forigu la .fadeklason de via modala markado.

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

Dinamikaj altecoj

Se la alteco de modalo ŝanĝiĝas dum ĝi estas malfermita, vi devus vokimyModal.handleUpdate() por reĝustigi la pozicion de la modalo, se aperos rulumbreto.

Alirebleco

Nepre aldonu aria-labelledby="...", referencante la modalan titolon, al .modal. Aldone, vi povas doni priskribon de via modala dialogo per aria-describedbysur .modal. Notu, ke vi ne bezonas aldoni role="dialog"ĉar ni jam aldonas ĝin per JavaScript.

Enkonstruado de YouTube-videoj

Enmeti YouTube-filmetojn en modaloj postulas plian JavaScript ne en Bootstrap por aŭtomate ĉesigi la reproduktadon kaj pli. Vidu ĉi tiun helpeman afiŝon de Stack Overflow por pliaj informoj.

Laŭvolaj grandecoj

Modaloj havas tri laŭvolajn grandecojn, haveblajn per modifiklasoj por esti metitaj sur .modal-dialog. Ĉi tiuj grandecoj ekfunkcias ĉe certaj rompopunktoj por eviti horizontalajn rulstangojn sur pli mallarĝaj vidfenestroj.

Grandeco Klaso Modala maks-larĝo
Malgranda .modal-sm 300px
Defaŭlte Neniu 500px
Granda .modal-lg 800px
Ekstre granda .modal-xl 1140px

Nia defaŭlta modalo sen modifklaso konsistigas la "mezan" grandecan modalon.

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

Plenekrana Modalo

Alia superregado estas la opcio aperigi modalon kiu kovras la uzantan vidfenestron, haveblan per modifiklasoj kiuj estas metitaj sur .modal-dialog.

Klaso Havebleco
.modal-fullscreen Ĉiam
.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

Variabloj

Aldonita en v5.2.0

Kiel parto de la aliro de evoluantaj CSS-variabloj de Bootstrap, modaloj nun uzas lokajn CSS-variablojn sur .modalkaj .modal-backdroppor plibonigita realtempa personigo. Valoroj por la CSS-variabloj estas fiksitaj per Sass, do ankaŭ Sass-adaptigo ankoraŭ estas subtenata.

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

Sass-variabloj

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

Buklo

Respondema plenekranaj modaloj estas generitaj per la $breakpointsmapo kaj buklo en 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;
      }
    }
  }
}

Uzado

La modala kromaĵo ŝanĝas vian kaŝitan enhavon laŭpeto, per datumaj atributoj aŭ JavaScript. Ĝi ankaŭ superregas defaŭltan paĝrulan konduton kaj generas .modal-backdroppor disponigi klakan areon por forĵeti montritajn modalojn kiam klakado ekster la modalo.

Per datumaj atributoj

Baskuligi

Aktivigu modalon sen skribi JavaScript. Agordu data-bs-toggle="modal"sur regila elemento, kiel butono, kune kun data-bs-target="#foo"href="#foo"por celi specifan modalon por ŝanĝi.

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

Forĵeti

Malakcepto povas esti atingita per la dataatributo sur butono ene de la modalo kiel montrite sube:

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

aŭ sur butono ekster la modalo uzante la data-bs-targetkiel montrite sube:

<button type="button" class="btn-close" data-bs-dismiss="modal" data-bs-target="#my-modal" aria-label="Close"></button>
Dum ambaŭ manieroj malakcepti modalon estas subtenataj, memoru, ke forĵeti de ekster modalo ne kongruas kun la dialogo (modala) ŝablono de ARIA Authoring Practices Guide . Faru tion je via propra risko.

Per JavaScript

Kreu modalon kun ununura linio de JavaScript:

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

Opcioj

Ĉar opcioj povas esti pasigitaj per datumaj atributoj aŭ JavaScript, vi povas almeti opcionomon al data-bs-, kiel en data-bs-animation="{value}". Nepre ŝanĝu la kazon de la opcionomo de " camelCase " al " kebab-case " kiam vi pasas la opciojn per datumaj atributoj. Ekzemple, uzu data-bs-custom-class="beautifier"anstataŭ data-bs-customClass="beautifier".

Ekde Bootstrap 5.2.0, ĉiuj komponantoj subtenas eksperimentan rezervitan datuman atributon data-bs-config, kiu povas enhavi simplan komponan agordon kiel JSON-ĉeno. Kiam elemento havas data-bs-config='{"delay":0, "title":123}'kaj data-bs-title="456"atributojn, la fina titlevaloro estos 456kaj la apartaj datumaj atributoj anstataŭigos valorojn donitajn sur data-bs-config. Krome, ekzistantaj datumaj atributoj povas enhavi JSON-valorojn kiel data-bs-delay='{"show":0,"hide":150}'.

Nomo Tajpu Defaŭlte Priskribo
backdrop bulea,'static' true Inkluzivas modalan fonan elementon. Alternative, specifu staticpor fono, kiu ne fermas la modalon kiam oni alklakas.
focus bulea true Metas la fokuson sur la modalon kiam pravaligita.
keyboard bulea true Fermas la modalon kiam eskapa klavo estas premata.

Metodoj

Nesinkronaj metodoj kaj transiroj

Ĉiuj API-metodoj estas nesinkronaj kaj komencas transiron . Ili revenas al la alvokanto tuj kiam la transiro estas komencita sed antaŭ ol ĝi finiĝas . Krome, metodovoko sur transira komponento estos ignorita .

Vidu nian JavaScript-dokumentaron por pliaj informoj .

Pasantaj opcioj

Aktivigas vian enhavon kiel modalon. Akceptas laŭvolajn opciojn object.

const myModal = new bootstrap.Modal('#myModal', {
  keyboard: false
})
Metodo Priskribo
dispose Detruas la modalon de elemento. (Forigas konservitajn datumojn sur la DOM-elemento)
getInstance Senmova metodo, kiu ebligas al vi akiri la modalan petskribon asociitan kun DOM-elemento.
getOrCreateInstance Senmova metodo, kiu ebligas al vi akiri la modalan petskribon asociitan kun DOM-elemento, aŭ krei novan se ĝi ne estis pravigita.
handleUpdate Mane reĝustigu la pozicion de la modalo se la alteco de modalo ŝanĝiĝas dum ĝi estas malfermita (te en la okazo ke aperos rulumbreto).
hide Mane kaŝas modalon. Revenas al la alvokanto antaŭ ol la modalo estas fakte kaŝita (te antaŭ ol la hidden.bs.modalevento okazas).
show Mane malfermas modalon. Revenas al la alvokanto antaŭ ol la modalo estas efektive montrita (te antaŭ ol la shown.bs.modalevento okazas). Ankaŭ, vi povas pasi DOM-elementon kiel argumenton kiu povas esti ricevita en la modalaj eventoj (kiel la relatedTargetposedaĵo). ( const modalToggle = document.getElementById('toggleMyModal'); myModal.show(modalToggle)t.e.
toggle Mane ŝanĝas modalon. Revenas al la alvokanto antaŭ ol la modalo estas efektive montrita aŭ kaŝita (t.e. antaŭ ol la shown.bs.modalevento hidden.bs.modalokazas).

Eventoj

La modala klaso de Bootstrap elmontras kelkajn eventojn por hoki al modala funkcieco. Ĉiuj modalaj eventoj estas pafitaj ĉe la modalo mem (te ĉe la <div class="modal">).

Evento Priskribo
hide.bs.modal Ĉi tiu evento estas lanĉita tuj kiam la hideekzempla metodo estas vokita.
hidden.bs.modal Ĉi tiu evento estas lanĉita kiam la modalo finiĝis kaŝita de la uzanto (atendos ke CSS-transiroj finiĝos).
hidePrevented.bs.modal Ĉi tiu okazaĵo estas lanĉita kiam la modalo estas montrita, ĝia fono estas statickaj klako ekster la modalo estas farita. La okazaĵo ankaŭ estas lanĉita kiam la eskapoklavo estas premata kaj la keyboardopcio estas agordita al false.
show.bs.modal Ĉi tiu evento tuj ekfunkciigas kiam la showekzempla metodo estas vokita. Se kaŭzite de klako, la klakita elemento disponeblas kiel la relatedTargetposedaĵo de la evento.
shown.bs.modal Ĉi tiu evento estas lanĉita kiam la modalo fariĝis videbla por la uzanto (atendos ke CSS-transiroj finiĝos). Se kaŭzite de klako, la klakita elemento disponeblas kiel la relatedTargetposedaĵo de la evento.
const myModalEl = document.getElementById('myModal')
myModalEl.addEventListener('hidden.bs.modal', event => {
  // do something...
})