J'ai un problème, avec un modal. J'ai un bouton sur une page, qui bascule le modal. Lorsque le modal apparaît, la page saute en haut.
J'ai fait tout ce que j'ai pu pour trouver une solution / etc, mais je suis vraiment perdu.
ÉDITER:
J'ai aussi essayé avec: $('#myModal').modal('show');
mais cela a exactement le même effet.
window
le fichier modal se déclenche. Cela semble étrange et inattendu. J'ai supprimé lesbutton
via devtools et cliquer n'importe où sur la page ouvrait toujours la fenêtre modale. Était-ce le comportement souhaité? Je me demande si vous n'avez pas le bon sélecteur pour l'événement de clic modal.Réponses:
Lorsque le modal s'ouvre, une
modal-open
classe est définie sur la<body>
balise. Cette classe définitoverflow: hidden;
le corps. Ajoutez cette règle à votre feuille de style pour remplacer le style bootstrap.css:Le parchemin doit maintenant rester en place.
la source
.modal('show')
et il défile toujours en haut de la page. Bootstrap v3.2.0position: inherit
à cette classe mais j'ai travaillé comme un charme après cela.Si vous appelez modal avec tag. Essayez de supprimer '#' de l'attribut href et appelez modal avec des attributs de données.
la source
si vous utilisez une balise d'ancrage en tant que problème
<a href"#" ..> ... </a>
et que voushref="#"
créez un problème, supprimez-le. Vous pouvez en savoir plus icila source
Cela vous aidera à arrêter la barre de défilement en haut.Cela a fonctionné pour moi
la source
Peut-être travailler avec des modaux imbriqués quelque part dans le code:
Pour moi, c'était une combinaison de position, de hauteur et de débordement.
la source
Je ne vois pas d'erreur spécifique, mais je vous conseillerais de vérifier votre syntaxe html .
Un petit test avec votre source me donne des erreurs comme
Cela pourrait être un problème.
la source
Le moyen le plus simple de résoudre l'arrière-plan sautant est de définir deux paramètres:
la source
J'ai essayé de reproduire ce problème sur mon hôte local et aussi étrange que cela puisse paraître, il y a un conflit avec le fichier Bootstrap JS que vous utilisez.
Essayez de commenter votre code de:
Et utilisez plutôt Bootstrap 2.3.2:
Cela a fonctionné pour moi.
Je l'ai essayé avec Bootstrap version 3 mais cela n'a pas fonctionné. Je suis toujours incapable de localiser la partie problématique, mais quelque part le long de Firebug m'a jeté une
e.preventDefault() is not a function
erreur - je suppose que cela devrait être la cause principale, mais je ne l'ai pas encore comparée avec les autres fichiers JS.la source
J'ai essayé de placer le haut .modal au centre de l'écran.
Juste mes 2 cents de pensées.
la source
Dans bootstrap 3.1.1, j'ai résolu avec cette solution:
la source
vous avez 2
div
balises de fermeture supplémentaires juste avant<div id="footer">
ou après le<div id="mainFrame" class="group">
div. J'utilise Visual Studio 2012 Express pour inspecter cela.Veuillez supprimer ces 2 div supplémentaires et dites-nous comment cela fonctionne. J'ai supprimé les div supplémentaires et supprimé tous les scripts personnalisés. conservé uniquement le noyau jquery et le bootstrap au pied de page. voici la capture d'écran de la sortie finale. ici le terrain de jeu jsbin pour vous qui fonctionne très bien.
Je vous suggère d'utiliser headjs pour charger tous les scripts et fichiers css. ce n'est pas non plus une bonne pratique de charger deux fois des scripts.
la source
Essayez d'utiliser ceci pour ouvrir modal et voir ce qui se passe:
la source
J'avais besoin de l'attribut important pour le réparer
la source
J'ai eu le même problème avec Bootstrap 2.3.2
C'était un problème pour cliquer sur un lien:
L'astuce était: retourner faux;
et les js:
la source
J'ai passé des heures à essayer de tout ici et ailleurs. Pour l'utilisation angularjs-material, il s'est avéré que je devais désactiver l'animation sur l'objet de configuration uibModal.open arg.
Par exemple:
J'espère que ceci aide quelqu'un d'autre.
la source
Si vous rencontrez ce problème dans un programme Angular, ajoutez le code ci-dessous à la première ligne du fichier .scss.
la source
J'ai eu le même problème et je pense que je l'ai compris. Il vous suffit de placer le HTML modal en tant qu'enfant direct de la balise body ! Vous pouvez cependant placer le code HTML du bouton déclenchant le modal là où vous en avez besoin. Je pense que cela évite l'héritage CSS et les problèmes de position qui déclenchent ce problème.
Exemple:
la source
Finalement compris celui-ci. N'enveloppez PAS le bouton ciblant le modal dans une balise d'ancrage.
Mauvais
Bien
la source
Celui-ci l'a fait pour moi
la source
Après avoir lu des dizaines de réponses sur plusieurs heures, j'ai copié à nouveau le code original du fichier d'amorçage et débogué étape par étape pour voir ce qui a causé cela, je saute toujours au sommet. Parce que la dernière version actuelle de Bootstrap 3 affiche le modal à la position que vous êtes en ce moment. J'avais découvert que
-webkit-transform: translate3d(0,0,0);
etheight: 100%
dans mon css body-tag provoquait ce comportement. Peut-être que cela aide quelqu'un.la source
Pour moi fonctionne lorsque j'ai changé la version de 3.1.1 à 3.3.7
Si vous n'avez pas besoin d'utiliser la version 3.3.1, essayez de remplacer.
Après le changement, il est bon de vérifier que le reste de la fonction fonctionne correctement.
la source
body.modal-open { position: inherit; }
Cela a fonctionné comme un charme pour moi.
la source
J'ai essayé tous les exemples ci-dessus - c'est la seule chose qui a fonctionné pour moi:
Retirer le rembourrage du côté droit du modèle - empêche le saut.
la source
hauteur: 100% est résoudre le problème, mais vous devez ajouter le bon "div"
la source
J'ai eu le même problème et aucune des réponses ne m'a aidé. J'ai trouvé une solution de contournement qui a l'air stupide mais qui fonctionne au moins dans mon cas.
J'ai trouvé que la page ne défilait vers le haut qu'une seule fois et qu'après cela, les prochains modaux ouverts fonctionnaient comme prévu. Ensuite, j'ai trouvé que le fait de cacher tout élément du DOM déclenche le même étrange parchemin. Donc, je viens de créer un div factice après le chargement de la page que de le cacher et de le supprimer, ce qui a résolu le problème.
la source
J'étais confronté au même problème. Le problème était que j'ajoutais une classe .modal-open aux éléments html et body. Ajoutez simplement cette classe à body et tout fonctionne comme prévu.
la source
Essayez ceci, cela fonctionne parfaitement
la source
c'est une bonne idée de le réparer, ça ressemble à du jock!
https://github.com/jschr/bootstrap-modal/issues/131#issuecomment-153405449
la source
Si la réponse de pstenstrm ne fonctionne pas pour vous, essayez de la combiner avec ce bouton de remplacement HTML:
Cela devrait garder le bouton à l'écran.
la source