Nachdem ich viele Korrekturen dafür gesehen hatte und keine genau das war, was ich brauchte, habe ich eine noch kürzere Lösung gefunden, die von @YermoLamers & @Ketwaroo inspiriert ist .
Hintergrund-Z-Index-Fix
Diese Lösung verwendet a, setTimeout
da das .modal-backdrop
nicht erstellt wird, wenn das Ereignis show.bs.modal
ausgelöst wird.
$(document).on('show.bs.modal', '.modal', function () {
var zIndex = 1040 + (10 * $('.modal:visible').length);
$(this).css('z-index', zIndex);
setTimeout(function() {
$('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack');
}, 0);
});
- Dies funktioniert für alle
.modal
auf der Seite erstellten (auch für dynamische Modalitäten).
- Der Hintergrund überlagert sofort das vorherige Modal
Wenn Ihnen der fest codierte Z-Index aus irgendeinem Grund nicht gefällt, können Sie den höchsten Z-Index auf der Seite folgendermaßen berechnen :
var zIndex = Math.max.apply(null, Array.prototype.map.call(document.querySelectorAll('*'), function(el) {
return +el.style.zIndex;
})) + 10;
Korrektur der Bildlaufleiste
Wenn Ihre Seite ein Modal enthält, das die Browserhöhe überschreitet, können Sie beim Schließen eines zweiten Modals nicht darin scrollen. Um dies zu beheben, fügen Sie hinzu:
$(document).on('hidden.bs.modal', '.modal', function () {
$('.modal:visible').length && $(document.body).addClass('modal-open');
});
Versionen
Diese Lösung wurde mit Bootstrap 3.1.0 - 3.3.5 getestet