J'ai implémenté fancybox2 sur un site de développement.
Lorsque j'engage la fancybox (cliquez sur le lien, etc.), tout le code HTML se déplace derrière - et va vers le haut. Je le fais fonctionner correctement dans une autre démo, mais lorsque je fais glisser le même code vers ce projet, il saute vers le haut. Non seulement avec les liens vers les divs en ligne, mais aussi pour une simple galerie d'images.
Quelqu'un a-t-il vécu cela?
jquery
css
fancybox-2
shérifderek
la source
la source
Réponses:
Cela peut en fait être fait avec un assistant dans Fancybox 2.
http://davekiss.com/prevent-fancybox-from-jumping-to-the-top-of-the-page/
la source
locked
est défini surfalse
.) Il s'agit d'une solution de contournement temporaire à un problème qui peut en créer un autre pour certains scénarios. C'était un bogue et il a été corrigé dans le dernier master github.com/fancyapps/fancyBox/archive/master.zipJordanj77 est correct, mais la solution la plus simple consiste simplement à accéder à la feuille de style
jquery.fancybox.css
et à commenter la ligne en disantoverflow: hidden !important;
dans la section.fancybox-lock
la source
Je sais que c'est une vieille question, mais je pense avoir trouvé une bonne solution. Le problème est que la boîte fantaisie modifie la valeur de débordement du corps afin de masquer les barres de défilement du navigateur.
Comme le souligne Dave Kiss, nous pouvons empêcher Fancy Box de faire cela en ajoutant les paramètres suivants:
Mais, maintenant, nous pouvons faire défiler la page principale tout en regardant notre fenêtre de fantaisie. C'est mieux que de sauter en haut de la page, mais ce n'est probablement pas ce que nous voulons vraiment.
Nous pouvons empêcher le défilement dans le bon sens en ajoutant les paramètres suivants:
Et ajoutez ces fonctions de galambalaz. Voir: Comment désactiver temporairement le défilement?
la source
Le problème est que fancyBox modifie la valeur de débordement du corps afin de masquer les barres de défilement du navigateur. Je n'ai pas trouvé d'option pour activer ce comportement.
Vous pouvez supprimer cette section du code fancyBox pour l'empêcher:
la source
Malgré le fait que la bonne façon de résoudre ce problème passe par les options fournies par fancybox ( reportez-vous à cette réponse ), CSS pourrait être utilisé pour résoudre le problème. Il n'est pas nécessaire de modifier le fichier css de la bibliothèque, ajoutez simplement ceci à la feuille de style principale de l'application:
Le code réinitialise le débordement d'origine de l'élément. Le problème est que
overflow: hidden;
cache la barre de défilement sur l'<html>
élément, ce qui fait «sauter» la page vers le haut. Afin de conserver la position de la barre de défilement, nous écrasons le débordement avecoverflow: visible;
la source
<body>
ou / et le<html>
peuvent avoirheight: 100%
Cela a également aidé
la source
La réponse acceptée n'est pas complète car elle ne résout pas réellement le problème, elle l'évite simplement! Voici une réponse plus complète qui vous donne réellement la fonctionnalité souhaitée tout en résolvant le problème de saut de fenêtre:
la source
Peut-être que cette réponse est toujours tardive, mais peut-être qu'elle pourrait aider à l'avenir, si après avoir cliqué / fermé une image fancybox fait défiler votre site Web vers le haut, vous pouvez simplement supprimer le:
ou mieux utiliser:
Dans la version fancyBox: 2.1.5 (ven, 14 juin 2013) cette partie du code se trouve à la ligne 897.
la source
Vous pouvez effectivement coder comme ceci si vous utilisez la fonction par défaut de fancybox:
la source
Je l'ai réparé avec:
dans le
.fancybox-lock
corps enjquery.fancybox.css
. Et la barre de défilement ne saute pas :)la source