Me gustaría lanzar un Fancybox (por ejemplo, la versión de Fancybox de un modal o light box) al cargar la página. Podría vincularlo a una etiqueta de anclaje oculta y activar el evento de clic de esa etiqueta de anclaje a través de JavaScript, pero prefiero simplemente lanzar Fancybox directamente y evitar la etiqueta de ancla adicional.
jquery
jquery-plugins
fancybox
Blegger
fuente
fuente
Respuestas:
Actualmente, Fancybox no admite directamente una forma de iniciarse automáticamente. El trabajo que pude hacer es crear una etiqueta de anclaje oculta y activar su evento de clic. Asegúrese de que su llamada para activar el evento de clic se incluya después de que se incluyan los archivos jQuery y Fancybox JS. El código que utilicé es el siguiente:
Este script de muestra está incrustado directamente en el HTML, pero también podría incluirse en un archivo JS.
fuente
$(document).ready(LaunchFancyBox());
debería ser$(document).ready(LaunchFancyBox);
. (tenga en cuenta la falta de la llamada a la función al final).Conseguí que esto funcionara llamando a esta función en el documento listo:
fuente
Es sencillo:
Haga que su elemento esté oculto primero así:
Luego llame a su javascript:
Mira la imagen a continuación:
Otro ejemplo:
fuente
Window.load (a diferencia de document.ready ()) parece ser el truco utilizado en las demostraciones de JSFiddler onload de Fancybox 2.0 :
Tenga en cuenta que puede estar usando document.ready () en otro lugar, e IE9 se molesta con el orden de carga de los dos. Esto te deja con dos opciones: cambiar todo a window.load o usar un setTimer ().
fuente
O use esto en el archivo JS después de configurar su fancybox:
Creo que Fancybox 1.2.1 usará las opciones predeterminadas de lo contrario de mis pruebas cuando necesite hacer esto.
fuente
¿Por qué todavía no es esta una de las respuestas ?:
ahora solo activa tu enlace !!
obtuve esto de la página de inicio de Fancybox
fuente
La mejor forma que he encontrado es:
fuente
Para mi caso, lo siguiente puede funcionar correctamente. Cuando se carga la página, la caja de luz aparece inmediatamente.
JQuery: 1.4.2
Fancybox: 1.3.1
fuente
La respuesta de Alex es genial. pero es importante tener en cuenta que eso llama al estilo fancybox predeterminado. Si tiene sus propias reglas personalizadas, simplemente debe llamar a .trigger y hacer clic en ese ancla específico
fuente
De hecho, logré activar un enlace de fancyBox solo desde un archivo JS externo usando el evento "en vivo":
Primero, agregue el evento de clic en vivo en su futuro ancla dinámica:
Luego, agregue el ancla al cuerpo:
Luego active el fancyBox "haciendo clic" en el ancla:
El enlace de fancyBox ahora está "casi" listo. ¿Por qué "casi"? Porque parece que necesita agregar un retraso antes de activar el segundo clic, de lo contrario, el script no está listo.
Es un retraso rápido y sucio usando alguna animación en nuestro ancla, pero funciona bien:
Aquí tienes, ¡tu fancyBox debería aparecer cargado!
HTH
fuente
Tal vez esto ayude ... esto se usó en el evento de clic del calendario jQuery de tamaño completo ( http://arshaw.com/fullcalendar/ ) ... pero se puede usar de manera más general para lidiar con el lanzamiento de fancybox por jQuery.
fuente
También puede utilizar la función JavaScript nativa
setTimeout()
para retrasar la visualización del cuadro una vez que el DOM esté listo.fuente
En caso de que no tenga un botón para hacer clic. Quiero decir, si quieres abrirlo en la respuesta ajax, entonces sería así:
fuente
Esto ayudará..
fuente
Puedes poner un enlace como este (estará oculto. Puede ser antes
</body>
)Y trabajando atributo rel o clase como esta
Solo hazlo con la función de activación de jquery
fuente
HTML:
JS:
fuente
tal vez puedas usar jqmodal , es liviano y fácil de usar. puedes mostrar el cuadro modal llamando
fuente