Entonces, estoy usando este código para abrir otra ventana modal en una ventana modal abierta actual:
<a onclick=\"$('#login').modal('hide');$('#lost').modal('show');\" href='#'>Click</a>
Lo que sucede es que durante unos 500 ms la barra de desplazamiento se duplicará. Supongo que porque el modal actual todavía se está desvaneciendo. Sin embargo, parece muy poco suave y tartamudeante.
Agradecería cualquier sugerencia para resolver este problema.
Además, ¿la forma de construir esto en un evento onclick no es profesional?
Estoy trabajando con la versión 3.0 de bootstrap.
Editar: Supongo que es necesario reducir el tiempo de desvanecimiento de un modal. ¿Cómo es esto posible?
Respuestas:
data-dismiss
hace que la ventana modal actual se cierre con fuerzadata-toggle
abre un nuevo modal con elhref
contenido dentro de élo
háganos saber si funciona.
fuente
data-dismiss
hace. Cierra la ventana actual y abre una nueva. ¿Puedes publicar tu código enbootply
ojsfiddle
?.modal { overflow-y: auto }
resuelve el problema de desplazamiento BS4.Mi solución no cierra el modal inferior, pero realmente se acumula encima de él. Conserva el comportamiento de desplazamiento correctamente. Probado en Bootstrap 3. Para que los modales se apilen como se espera, debe tenerlos ordenados en su marcado Html de menor a mayor.
ACTUALIZACIÓN: cuando haya apilado los modales, todos los fondos aparecen debajo del modal más inferior. Puede solucionarlo agregando el siguiente CSS:
Esto dará la apariencia de un fondo modal debajo del modal visible más alto. De esa manera, atenúa los modales inferiores debajo.
fuente
Para abrir otra ventana modal en una ventana modal abierta actualmente,
puede usar bootstrap-modal
DEMO de bootstrap-modal
fuente
prueba esto
fuente
De hecho, puede detectar cuándo se cierra el antiguo modal llamando al
hidden.bs.modal
evento:Para más información: http://getbootstrap.com/javascript/#modals-events
fuente
Actualización para 2018: uso de Bootstrap 4
Encontré que la mayoría de las respuestas parecen tener una gran cantidad de jQuery innecesario. Para abrir un modal desde otro modal se puede hacer simplemente usando los eventos que proporciona Bootstrap como
show.bs.modal
. También puede querer algo de CSS para manejar las superposiciones de fondo. Aquí están los 3 modal abiertos de otros escenarios ...Abrir modal desde otro modal (mantener el primer modal abierto)
Un problema potencial en este caso es que el telón de fondo del segundo modal oculta el primer modal. Para evitar esto, haga el segundo modal
data-backdrop="static"
y agregue algo de CSS para arreglar los índices z de los fondos ...https://www.codeply.com/go/NiFzSCukVl
Abrir modal desde otro modal (cerrar el 1er modal)
Esto es similar al escenario anterior, pero dado que estamos cerrando el primer modal cuando se abre el segundo, no hay necesidad de corregir el CSS de fondo. Una función simple que maneja el segundo
show.bs.modal
evento modales cierra el primer modal.https://www.codeply.com/go/ejaUJ4YANz
Abrir modal dentro de otro modal
El último escenario de múltiples modales es abrir el segundo modal dentro del primer modal. En este caso, el marcado para el segundo se coloca dentro del primero. No se necesita CSS o jQuery adicional.
https://www.codeply.com/go/iSbjqubiyn
fuente
.modal-backdrop.show + .modal.show { z-index: 1052 !important; } .modal-backdrop.show + .modal.show + .modal-backdrop.show { z-index: 1051 !important; }
Modales en modal:
fuente
Trabajando en un proyecto que tiene muchos modales llamando a otros modales y algunos tipos de HTML que quizás no sepan iniciarlo cada vez para cada botón. Llegué a una conclusión similar a la de @gmaggio, a regañadientes después de recorrer el camino más largo primero.
EDITAR: Ahora admite modales llamados a través de javascript.
EDITAR: Ahora funciona abrir un modal de desplazamiento desde otro modal.
Simplemente coloque el botón de llamada modal como de costumbre, y si se selecciona para que esté dentro de un modal, primero cerrará el actual antes de abrir el especificado en data-target. Tenga en cuenta que
relatedTarget
lo proporciona Bootstrap.También agregué lo siguiente para suavizar un poco el desvanecimiento: estoy seguro de que se puede hacer más.
fuente
Los documentos de Twitter dicen que se requiere un código personalizado ...
Esto funciona sin JavaScript adicional, aunque se recomienda encarecidamente CSS personalizado ...
fuente
z-index: 1080 !important;
Para bootstrap 4, para expandir la respuesta de @ helloroy, usé lo siguiente; -
La ventaja de lo anterior es que no tendrá ningún efecto cuando solo hay un modal, solo se activa para múltiples. En segundo lugar, delega el manejo en el cuerpo para garantizar que se atiendan los futuros modales que no se generan actualmente.
Actualizar
Pasar a una solución combinada js / css mejora el aspecto: la animación de fundido continúa funcionando en el fondo; -
combinado con el siguiente CSS; -
Esto manejará modales anidados hasta 4 de profundidad, que es más de lo que necesito.
fuente
Prueba esto:
Este simple truco funciona para mí.
fuente
Para alguien que usa bootstrap 4 https://jsfiddle.net/helloroy/tmm9juoh/
fuente
También tuve algunos problemas con mis modales desplazables, así que hice algo como esto:
Servirá para cualquier modal dentro de un modal que venga a aparecer. Tenga en cuenta que el primero está cerrado, por lo que el segundo puede aparecer. No hay cambios en la estructura de Bootstrap.
fuente
Tomé una ruta diferente todos juntos, decidí "Des-Nest". Quizás alguien encuentre esto útil ...
fuente
Mi código funciona bien con el descarte de datos.
fuente
Cierre el primer modal de Bootstrap y abra el nuevo modal de forma dinámica.
fuente
¿Por qué no cambiar simplemente el contenido del cuerpo modal?
En el modal solo pon un enlace o un botón
Si solo desea cambiar entre 2 modales:
En el modal solo pon un enlace o un botón
fuente
prueba esto:
fuente
La respuesta dada por H Dog es excelente, pero este enfoque en realidad me estaba dando un parpadeo modal en Internet Explorer 11. Bootstrap primero ocultará el modal eliminando la clase 'modal-open', y luego (usando la solución H Dogs) agregamos el clase 'modal-open' de nuevo. Sospecho que esto de alguna manera está causando el parpadeo que estaba viendo, tal vez debido a una representación lenta de HTML / CSS.
Otra solución es evitar el arranque en la eliminación de la clase 'modal-open' del elemento del cuerpo en primer lugar. Usando Bootstrap 3.3.7, esta anulación de la función interna hideModal funciona perfectamente para mí.
En esta anulación, la clase 'modal-open' solo se elimina cuando no hay modales visibles en la pantalla. Y evita que un marco elimine y agregue una clase al elemento del cuerpo.
Solo incluya la anulación después de que se haya cargado el bootstrap.
fuente
fuente