Heim > Web-Frontend > js-Tutorial > Wie kann ein korrektes modales Stapeln mit mehreren Modalen in Bootstrap sichergestellt werden?

Wie kann ein korrektes modales Stapeln mit mehreren Modalen in Bootstrap sichergestellt werden?

Linda Hamilton
Freigeben: 2024-10-27 05:45:03
Original
866 Leute haben es durchsucht

How to Ensure Correct Modal Stacking with Multiple Modals in Bootstrap?

Überlagerung mehrerer Modalitäten

In einer Schnittstelle mit mehreren Modalitäten ist es entscheidend, sicherzustellen, dass die geöffneten Modalitäten korrekt gestapelt werden und jedes neue Modalität angezeigt wird über den vorherigen. Ein häufiges Problem von Entwicklern besteht jedoch darin, dass nachfolgende Modals möglicherweise hinter vorhandenen angezeigt werden, wodurch eine unerwünschte Überlagerung entsteht.

Um dieses Problem zu beheben, wurde eine Lösung vorgeschlagen, die die Änderung der Z-Index-Eigenschaft der Modal-Hintergründe und umfasst seine Elemente werden präsentiert.

Hintergrund-Z-Index-Korrektur

Um die korrekte Stapelreihenfolge modaler Hintergründe sicherzustellen, wird eine maßgeschneiderte Lösung implementiert. Insbesondere wird eine setTimeout-Funktion verwendet, da der modale Hintergrund während des show.bs.modal-Ereignisauslösers nicht vorhanden ist.

<code class="javascript">$(document).on('show.bs.modal', '.modal', function() {
  const zIndex = 1040 + 10 * $('.modal:visible').length;
  $(this).css('z-index', zIndex);
  setTimeout(() => $('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack'));
});</code>
Nach dem Login kopieren

Dieser Ansatz bietet mehrere entscheidende Vorteile:

  • Es funktioniert effektiv für jedes Modal auf der Seite, einschließlich der dynamisch erstellten.
  • Der Hintergrund überlagert sofort das Modal darunter, was zu einer nahtlosen Stapelung führt.

z-index Berechnung

In Fällen, in denen benutzerdefinierte Z-Index-Werte bevorzugt werden, kann eine alternative Methode zur Berechnung des höchsten Z-Index auf der Seite verwendet werden:

<code class="javascript">const zIndex = 10 +
  Math.max(...Array.from(document.querySelectorAll('*')).map((el) => +el.style.zIndex));</code>
Nach dem Login kopieren

Korrektur der Bildlaufleiste

Um potenzielle Probleme beim Scrollen zu beheben, wenn ein Modal über die Browserhöhe hinausgeht, kann ein zusätzliches Skript implementiert werden:

<code class="javascript">$(document).on('hidden.bs.modal', '.modal',
  () => $('.modal:visible').length && $(document.body).addClass('modal-open'));</code>
Nach dem Login kopieren

Versionskompatibilität

Die vorgestellte Lösung wurde gründlich getestet und bestätigt, dass sie effektiv mit den Bootstrap-Versionen 3.1.0 – 3.3.5 funktioniert.

Das obige ist der detaillierte Inhalt vonWie kann ein korrektes modales Stapeln mit mehreren Modalen in Bootstrap sichergestellt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage