Tengo un problema con un modal. Tengo un botón en una página que cambia el modal. Cuando aparece el modal, la página salta a la parte superior.
Hice todo lo que pude para encontrar una solución / etc, pero estoy realmente perdido.
EDITAR:
También he probado con: $('#myModal').modal('show');
pero tiene exactamente el mismo efecto.
window
el modal se dispara. Eso parece extraño e inesperado. Quité labutton
vía devtools, y en cualquier lugar haciendo clic en la página todavía abierto la ventana modal. ¿Fue ese el comportamiento deseado? Me pregunto si no tiene el selector correcto para el evento de clic modal.Respuestas:
Cuando se abre el modal
modal-open
, se establece una clase en la<body>
etiqueta. Esta clase se ajustaoverflow: hidden;
al cuerpo. Agregue esta regla a su hoja de estilo para anular el estilo bootstrap.css:Ahora el pergamino debería permanecer en su lugar.
fuente
.modal('show')
y todavía se desplaza hasta la parte superior de la página. Bootstrap v3.2.0position: inherit
a esta clase, pero funcioné como un encanto después de eso.Si está llamando modal con etiqueta. Intente eliminar '#' del atributo href y llame al modal con atributos de datos.
fuente
si está utilizando la etiqueta de anclaje como
<a href"#" ..> ... </a>
yhref="#"
está creando un problema, elimínelo. Puedes leer más aquífuente
Esto te ayudará a detener la barra de desplazamiento en la parte superior. Me funcionó
fuente
Posiblemente trabajando con modales anidados en algún lugar del código:
Para mí fue una combinación de posición, altura y desbordamiento.
fuente
No veo un error específico, pero le aconsejo que verifique su sintaxis html .
Una pequeña prueba con tu fuente me da errores como
Esto podría ser un problema.
fuente
La forma más sencilla de resolver el fondo de salto es definir dos parámetros:
fuente
Intenté replicar este problema en mi localhost y, por extraño que parezca, hay un conflicto con el archivo Bootstrap JS que estás usando.
Intenta comentar tu código de:
Y en su lugar use Bootstrap 2.3.2:
Esto hizo que funcionara para mí.
Lo intenté con Bootstrap versión 3 pero no funcionó. Todavía no puedo identificar la parte del problema, pero en algún lugar Firebug me arrojó un
e.preventDefault() is not a function
error; supongo que esta debería ser la causa raíz, pero aún tengo que compararlo con los otros archivos JS.fuente
Intenté colocar .modal top en el centro de la pantalla.
Solo mis 2 centavos de pensamientos.
fuente
En bootstrap 3.1.1 resolví con esta solución:
fuente
tiene 2
div
etiquetas de cierre adicionales justo antes<div id="footer">
o después del<div id="mainFrame" class="group">
div. Estoy usando Visual Studio 2012 Express para inspeccionar esto.Elimine estos 2 divs adicionales y háganos saber cómo funciona. Eliminé divs adicionales y eliminé todos los scripts personalizados. solo retuvo jquery core y bootstrap en el pie de página. aquí está la captura de pantalla del resultado final. aquí está el patio de recreo de jsbin para usted que está funcionando bien.
Le sugiero que use headjs para cargar todos los scripts y archivos css. Además, no es una buena práctica cargar los scripts dos veces.
fuente
Intente usar esto para abrir modal y vea qué sucede:
fuente
Necesitaba el atributo importante para que lo arreglara
fuente
Tuve el mismo problema al usar Bootstrap 2.3.2
Fue un problema para hacer clic en un enlace:
El truco era: devolver falso;
y los js:
fuente
Pasé horas en esto probando todo aquí y en otros lugares. Para el uso de material angularjs, resultó que tuve que deshabilitar la animación en el objeto de configuración uibModal.open arg.
Por ejemplo:
Espero que esto ayude a alguien más.
fuente
Si enfrenta este problema en un programa Angular, agregue el siguiente código en la primera línea del archivo .scss.
fuente
Tuve el mismo problema y creo que lo he resuelto. ¡Solo necesita colocar el HTML modal como hijo directo de la etiqueta del cuerpo ! Sin embargo, puede colocar el código HTML para el botón que activa el modal donde lo necesite. Creo que esto evita la herencia de CSS y los problemas de posición que desencadenan este problema.
Ejemplo:
fuente
Finalmente descubrí este. NO envuelva el botón que apunta al modal en una etiqueta de anclaje.
Malo
Bueno
fuente
Este lo hizo por mi
fuente
Después de leer docenas de respuestas durante varias horas, copié el código original del archivo de arranque nuevamente y depuré paso a paso para ver qué causaba que siempre saltara a la parte superior. Porque la última versión real de Bootstrap 3 muestra el modal en la posición en la que se encuentra ahora. Me enteré de eso
-webkit-transform: translate3d(0,0,0);
yheight: 100%
en mi etiqueta de cuerpo css causó este comportamiento. Quizás esto ayude a alguien.fuente
Para mí funciona cuando cambié la versión de 3.1.1 a 3.3.7
Si no tiene que usar la versión 3.3.1, intente reemplazarla.
Después del cambio, es bueno comprobar que el resto de la función funciona correctamente.
fuente
body.modal-open { position: inherit; }
Esto funcionó de maravilla para mí.
fuente
Probé todos los ejemplos anteriores, esto es lo único que funcionó para mí:
Quitar el acolchado del lado derecho del modelo: evita el salto.
fuente
altura: el 100% es resolver el problema, pero debe agregar el "div" correcto
fuente
Tengo el mismo problema y ninguna de las respuestas me ayudó. Encontré una solución que parece estúpida pero funciona al menos en mi caso.
Descubrí que la página se desplaza hacia la parte superior solo una vez y, después de eso, los siguientes modales abiertos funcionan como se esperaba. Entonces descubrí que ocultar cualquier elemento en el DOM inicia el mismo desplazamiento extraño. Así que simplemente creé un div ficticio después de la carga de la página que ocultarlo y eliminarlo y esto resolvió el problema.
fuente
Estaba enfrentando el mismo problema. El problema era que estaba agregando la clase .modal-open a html y elementos del cuerpo. Simplemente agregue esta clase al cuerpo y todo funcionará como se esperaba.
fuente
Prueba esto, funciona perfectamente
fuente
¡Es una buena idea arreglarlo, parece un deportista!
https://github.com/jschr/bootstrap-modal/issues/131#issuecomment-153405449
fuente
Si la respuesta de pstenstrm no funciona para usted, intente combinarla con este HTML de botón de reemplazo:
Esto debería mantener el botón en pantalla.
fuente