Je souhaite lancer une Fancybox (par exemple la version Fancybox d'une boîte modale ou lumineuse) lors du chargement de la page. Je pourrais le lier à une balise d'ancrage cachée et déclencher l'événement de clic de cette balise d'ancrage via JavaScript, mais je préfère simplement lancer la Fancybox directement et éviter la balise d'ancrage supplémentaire.
jquery
jquery-plugins
fancybox
Blegger
la source
la source
Réponses:
Fancybox ne prend actuellement pas en charge directement un moyen de lancement automatique. Le travail autour duquel j'ai pu travailler consiste à créer une balise d'ancrage cachée et à déclencher son événement de clic. Assurez-vous que votre appel pour déclencher l'événement de clic est inclus une fois que les fichiers jQuery et Fancybox JS sont inclus. Le code que j'ai utilisé est le suivant:
Cet exemple de script est intégré directement dans le HTML, mais il peut également être inclus dans un fichier JS.
la source
$(document).ready(LaunchFancyBox());
devrait être$(document).ready(LaunchFancyBox);
. (notez l'absence de l'appel de fonction à la fin).J'ai fait fonctionner cela en appelant cette fonction dans le document prêt:
la source
C'est simple:
Rendez d'abord votre élément caché comme ceci:
Ensuite, appelez votre javascript:
Regardez l'image ci-dessous:
Un autre exemple:
la source
Window.load (par opposition à document.ready ()) semble être l'astuce utilisée dans les démos onload de JSFiddler de Fancybox 2.0 :
Gardez à l'esprit que vous utilisez peut-être document.ready () ailleurs, et IE9 se fâche avec l'ordre de chargement des deux. Cela vous laisse avec deux options: tout changer en window.load ou utiliser un setTimer ().
la source
Ou utilisez ceci dans le fichier JS après la configuration de votre fancybox:
Je pense que Fancybox 1.2.1 utilisera les options par défaut de mes tests lorsque j'aurai besoin de le faire.
la source
pourquoi n'est-ce pas encore une des réponses?:
maintenant, déclenchez simplement votre lien !!
obtenu ceci sur la page d'accueil de Fancybox
la source
Le meilleur moyen que j'ai trouvé est:
la source
Pour mon cas, ce qui suit peut fonctionner avec succès. Lorsque la page est chargée, la lightbox s'affiche immédiatement.
JQuery: 1.4.2
Boîte fantaisie: 1.3.1
la source
La réponse d'Alex est excellente. mais il est important de noter que cela appelle le style de fancybox par défaut. Si vous avez vos propres règles personnalisées, vous devez simplement appeler .trigger click sur cette ancre spécifique
la source
En fait, j'ai réussi à déclencher un lien fancyBox uniquement à partir d'un fichier JS externe en utilisant l'événement "live":
Tout d'abord, ajoutez l'événement de clic en direct sur votre future ancre dynamique:
Ensuite, ajoutez l'ancre au corps:
Puis déclenchez la fancyBox en "cliquant" sur l'ancre:
Le lien fancyBox est maintenant "presque" prêt. Pourquoi «presque»? Parce qu'il semble que vous deviez ajouter un délai avant de déclencher le deuxième clic, sinon le script n'est pas prêt.
C'est un délai rapide et sale en utilisant une animation sur notre ancre mais cela fonctionne bien:
Voilà, votre fancyBox devrait apparaître en téléchargement!
HTH
la source
Peut-être que cela aidera ... cela a été utilisé dans l'événement de clic du calendrier jQuery en taille réelle ( http://arshaw.com/fullcalendar/ ) ... mais cela peut être utilisé plus généralement pour gérer le lancement de fancybox par jQuery.
la source
Vous pouvez également utiliser la fonction JavaScript native
setTimeout()
pour retarder l'affichage de la boîte une fois que le DOM est prêt.la source
Au cas où vous n'avez pas de bouton sur lequel cliquer. Je veux dire si vous voulez l'ouvrir sur une réponse ajax, ce serait comme ceci:
la source
CA aidera..
la source
Vous pouvez mettre un lien comme celui-ci (il sera masqué. Peut-être avant
</body>
)Et un attribut ou une classe de travail comme celui-ci
Faites-le simplement avec la fonction de déclenchement jquery
la source
HTML:
JS:
la source
peut-être que vous pouvez utiliser jqmodal , il est léger et facile à utiliser. vous pouvez afficher la boîte modale en appelant
la source