Le corps mis à overflow-y:hidden, mais la page est toujours en défilant dans Chrome
Je vais avoir un problème avec le overflow-y
propriété dans google Chrome.
Même si je l'ai fixé à hidden
, je peux encore faire défiler la page avec la molette de la souris.
Voici mon code:
CSS:
html,
body {
overflow-y: hidden;
}
#content {
position: absolute;
width: 100%;
}
.step {
position: relative;
height: 500px;
margin-bottom: 500px;
}
HTML:
<body>
<div id="content">
<div class="step">this is the 1st step</div>
<div class="step">this is the 2nd step</div>
<div class="step">this is the 3rd step</div>
</div>
</body>
Quelqu'un sait comment bloquer le défilement vertical dans Chrome?
Merci!
- Veux juste les lien de ce post qui est lié et fournir des réponses pour les personnes toujours à la recherche de ça : link.
InformationsquelleAutor Cécile Boucheron | 2013-10-07
Vous devez vous connecter pour publier un commentaire.
Réglage de la hauteur sur votre corps et votre html de 100% devrait vous arranger. Sans une hauteur de votre contenu ne déborde pas, de sorte que vous ne sera pas obtenir le comportement souhaité.
J'ai enfin trouvé un moyen de résoudre le problème donc je vais répondre ici.
J'ai mis le
overflow-y
sur le#content
au lieu de cela, et enveloppé dans une autre div. Elle fonctionne.Voici le code final:
Ce qui fonctionne pour moi sur /FF et /Chrome:
overflow: hidden
juste désactive l'affichage des barres de défilement. (Mais vous pouvez le mettre là-bas, si vous aimez).Il ya un inconvénient que j'ai trouvé: Si vous utilisez cette méthode sur une page qui vous voulez seulement temporairement pour arrêter le défilement, réglage de la
position: fixed
de défilement vers le haut.C'est parce que la position: fixed utilise les positions absolues qui sont actuellement fixé à 0/0.
Cela peut être réparé par exemple avec jQuery:
Une autre solution que j'ai trouvée pour le travail consiste à définir un de la molette de la de gestionnaire à l'intérieur du conteneur et assurez-vous de ne pas se propager par le réglage de son dernier paramètre à false et l'arrêt de l'événement de la bulle.
De défilement fonctionne bien à l'intérieur du conteneur, mais l'événement ne se propagent pas au corps, et donc elle ne se défile pas. C'est en plus de définir les propriétés du corps overflow:hidden et hauteur:100%.
Essayez-le lorsque vous voulez pour "fixer" votre corps de défilement:
et c'est quand vous voulez l'activer de nouveau normal:
Utilisation:
Trouver l'élément qui est plus grand que le corps (élément qui est à l'origine de la page pour faire défiler) et juste régler la position fixe.
NOTE: je ne parle pas de changer la position des éléments déplaçables. Déplaçable éléments peuvent être déplacés hors du corps seulement quand il y a un élément plus grand que le corps (surtout en largeur).
Ok, donc c'est la combinaison qui a fonctionné pour moi quand j'ai eu ce problème sur un de mes sites web:
Techniquement, la taille de votre
body
ethtml
sont plus large que l'écran, de sorte que vous aurez de défilement. Vous aurez besoin de mettremargin:0;
etpadding:0;
pour éviter le comportement de défilement, et ajouter un peu de marge/rembourrage pour#content
à la place.box-sizing:border-box;
à#content
box-sizing:border-box;
La bonne réponse est, vous avez besoin de mettre JUSTE le corps de overflow:hidden. Pour quelque raison que ce soit, si vous aussi vous définir html pour overflow:hidden, le résultat est le problème que vous avez décrit.