Ich verwende diesen Code also, um ein anderes modales Fenster in einem aktuell geöffneten modalen Fenster zu öffnen:
<a onclick=\"$('#login').modal('hide');$('#lost').modal('show');\" href='#'>Click</a>
Was passiert ist, dass für etwa 500 ms die Bildlaufleiste dupliziert wird. Ich denke, weil das aktuelle Modal immer noch ausgeblendet ist. Es sieht jedoch sehr ungleichmäßig und stotternd aus.
Ich würde mich über Vorschläge zur Lösung dieses Problems freuen.
Ist es auch unprofessionell, dies in einem Onclick-Event aufzubauen?
Ich arbeite mit der Bootstrap-Version 3.0.
Bearbeiten: Ich denke, es ist notwendig, die Zeit zum Ausblenden eines Modals zu verkürzen. Wie ist das möglich?
Antworten:
data-dismiss
Lässt die aktuelle modale Fensterkraft schließendata-toggle
öffnet ein neues Modal mit demhref
Inhalt darinoder
Lassen Sie uns wissen, ob es funktioniert.
quelle
data-dismiss
macht. Es schließt das aktuelle Fenster und öffnet ein neues. Können Sie Ihren Code inbootply
oder postenjsfiddle
?.modal { overflow-y: auto }
löst das BS4-Bildlaufproblem.Meine Lösung schließt das untere Modal nicht, sondern stapelt sich wirklich darauf. Das Bildlaufverhalten bleibt korrekt erhalten. In Bootstrap 3 getestet. Damit Modals wie erwartet gestapelt werden können, müssen sie in Ihrem HTML-Markup vom niedrigsten zum höchsten geordnet sein.
UPDATE: Wenn Sie Modals gestapelt haben, werden alle Hintergründe unter dem untersten Modal angezeigt. Sie können dies beheben, indem Sie das folgende CSS hinzufügen:
Dadurch wird ein modaler Hintergrund unterhalb des obersten sichtbaren Modals angezeigt. Auf diese Weise werden Ihre unteren Modalitäten darunter grau.
quelle
Um ein anderes modales Fenster in einem aktuell geöffneten modalen Fenster zu öffnen,
Sie bootstrap-modal verwenden
Bootstrap-modales DEMO
quelle
Versuche dies
quelle
Sie können tatsächlich erkennen, wann das alte Modal geschlossen wird, indem Sie das
hidden.bs.modal
Ereignis aufrufen :Für weitere Informationen: http://getbootstrap.com/javascript/#modals-events
quelle
Update für 2018 - Verwenden von Bootstrap 4
Ich fand, dass die meisten Antworten eine Menge unnötiger jQuery enthalten. Das Öffnen eines Modals von einem anderen Modal aus kann einfach mithilfe der von Bootstrap bereitgestellten Ereignisse erfolgen, z
show.bs.modal
. Möglicherweise möchten Sie auch, dass CSS die Hintergrundüberlagerungen verarbeitet. Hier sind die 3 offenen Modal aus anderen Szenarien ...Modal von einem anderen Modal öffnen (1. Modal offen halten)
Ein mögliches Problem in diesem Fall ist, dass der Hintergrund des 2. Modals das 1. Modal verbirgt. Um dies zu verhindern, machen Sie das 2. Modal
data-backdrop="static"
und fügen Sie etwas CSS hinzu, um die Z-Indizes der Hintergründe zu korrigieren ...https://www.codeply.com/go/NiFzSCukVl
Modal von einem anderen Modal öffnen (1. Modal schließen)
Dies ähnelt dem obigen Szenario, aber da wir das erste Modal schließen, wenn das zweite geöffnet wird, ist die CSS-Korrektur im Hintergrund nicht erforderlich. Eine einfache Funktion, die das
show.bs.modal
Ereignis " 2. Modal" behandelt , schließt das 1. Modal.https://www.codeply.com/go/ejaUJ4YANz
Modal in einem anderen Modal öffnen
Das letzte Szenario mit mehreren Modalitäten ist das Öffnen des 2. Modals innerhalb des 1. Modals. In diesem Fall wird das Markup für das 2. innerhalb des 1 platziert. Es wird kein zusätzliches CSS oder jQuery benötigt.
https://www.codeply.com/go/iSbjqubiyn
quelle
.modal-backdrop.show + .modal.show { z-index: 1052 !important; } .modal-backdrop.show + .modal.show + .modal-backdrop.show { z-index: 1051 !important; }
Modal in Modal:
quelle
Arbeiten an einem Projekt mit vielen Modalen, die andere Modalitäten aufrufen, und einigen HTML-Leuten, die möglicherweise nicht wissen, wie sie es jedes Mal für jede Schaltfläche initiieren können. Kam zu einem ähnlichen Ergebnis wie @gmaggio, nachdem ich den langen Weg zuerst gegangen war.
EDIT: Unterstützt jetzt Modals, die über Javascript aufgerufen werden.
BEARBEITEN: Das Öffnen eines Bildlaufmodals von einem anderen Modal funktioniert jetzt.
Platzieren Sie einfach die Modal-Ruftaste wie gewohnt, und wenn sie innerhalb eines Modals aufgenommen wird, wird die aktuelle zuerst geschlossen, bevor die im Datenziel angegebene Taste geöffnet wird. Beachten Sie, dass
relatedTarget
dies von Bootstrap bereitgestellt wird.Ich habe auch Folgendes hinzugefügt, um das Ausbleichen ein wenig zu glätten: Ich bin mir jedoch sicher, dass noch mehr getan werden kann.
quelle
Laut Twitter-Dokumenten ist benutzerdefinierter Code erforderlich ...
Dies funktioniert ohne zusätzliches JavaScript. Benutzerdefiniertes CSS wird jedoch dringend empfohlen ...
quelle
z-index: 1080 !important;
Für Bootstrap 4 habe ich Folgendes verwendet, um die Antwort von @ helloroy zu erweitern: -
Der Vorteil des oben Gesagten ist, dass es keine Wirkung hat, wenn es nur ein Modal gibt, sondern nur für Vielfache. Zweitens delegiert es die Handhabung an die Stelle, um sicherzustellen, dass künftige Modalitäten, die derzeit nicht generiert werden, weiterhin berücksichtigt werden.
Aktualisieren
Der Wechsel zu einer kombinierten js / css-Lösung verbessert das Erscheinungsbild - die Überblendungsanimation funktioniert weiterhin im Hintergrund. -
kombiniert mit dem folgenden CSS; -
Dies wird Modale verarbeiten, die bis zu 4 tief verschachtelt sind, was mehr ist als ich brauche.
quelle
Versuche dies:
Dieser einfache Hack funktioniert bei mir.
quelle
Für jemanden, der Bootstrap 4 verwendet https://jsfiddle.net/helloroy/tmm9juoh/
quelle
Ich hatte auch einige Probleme mit meinen scrollbaren Modalen, also habe ich so etwas gemacht:
Es wird für jedes Modal innerhalb eines Modals dienen , das erscheint. Beachten Sie, dass der erste geschlossen ist, damit der zweite angezeigt werden kann. Keine Änderungen in der Bootstrap-Struktur.
quelle
Ich bin alle zusammen einen anderen Weg gegangen und habe beschlossen, sie zu "entnisten". Vielleicht findet das jemand praktisch ...
quelle
Mein Code funktioniert gut mit Datenentlassung.
quelle
Schließen Sie das erste Bootstrap-Modal und öffnen Sie das neue Modal dynamisch.
quelle
Warum nicht einfach den Inhalt des Modalkörpers ändern?
Im Modal einfach einen Link oder eine Schaltfläche einfügen
Wenn Sie nur zwischen 2 Modalitäten wechseln möchten:
Im Modal einfach einen Link oder eine Schaltfläche einfügen
quelle
Versuche dies:
quelle
Die Antwort von H Dog ist großartig, aber dieser Ansatz hat mir in Internet Explorer 11 tatsächlich ein modales Flimmern beschert. Bootstrap blendet zuerst das Modal aus und entfernt die Klasse "Modal-Open". Anschließend fügen wir (unter Verwendung der H Dogs-Lösung) das hinzu 'Modal-Open'-Klasse wieder. Ich vermute, dass dies irgendwie das Flackern verursacht, das ich gesehen habe, möglicherweise aufgrund eines langsamen HTML / CSS-Renderings.
Eine andere Lösung besteht darin, zu verhindern, dass Bootstrap die 'modal-open'-Klasse überhaupt aus dem body-Element entfernt. Mit Bootstrap 3.3.7 funktioniert diese Überschreibung der internen Funktion hideModal perfekt für mich.
Bei dieser Überschreibung wird die Klasse "Modal-Open" nur entfernt, wenn keine sichtbaren Modalitäten auf dem Bildschirm angezeigt werden. Und Sie verhindern, dass ein Frame eine Klasse entfernt und dem Body-Element hinzufügt.
Fügen Sie einfach die Überschreibung hinzu, nachdem der Bootstrap geladen wurde.
quelle
quelle