Je suis confronté à ce problème étrange qui ressemble à un bogue sur Chrome mobile.
J'ai un div avec la position: fixe; aligné sur le coin supérieur droit de l'écran. Sur le bureau, cela fonctionne bien (il reste en place), sur mobile, cependant, la div se déplace lorsque je fais défiler vers le haut ou le bas. J'ai fait une vidéo pour mieux l'expliquer:
https://www.youtube.com/watch?v=gCgN6ULkcMg
_ {Fonctionne avec le défilement vers le haut} _
_ {défiler vers le bas, une partie du div avec position: fixed disparaît en dehors de la fenêtre}
J'ai essayé d'isoler le problème sur un violon, mais je ne pouvais pas le reproduire. J'ai donc encapsulé tout le site dans un violon et le problème a cessé. Je n'ai toujours pas compris pourquoi.
Site isolé dans un violon: Supprimé *
Site Web en direct: Supprimé *
De plus, j'ai effectué des tests sur différents appareils, sur le site Web en direct:
Quelqu'un peut-il m'expliquer pourquoi Chrome Mobile a ce problème, alors que les autres n'en ont pas?
Ma position: div fixe ressemble à ceci:
div {
position:fixed;
top:10px;
left:0;
width:100%;
text-align:right;
}
* Suppression des liens, car il s'agit du site Web d'un client. La solution est dans la réponse ci-dessous.
Pour une bonne raison, mon bien-aimé Google Chrome sur mobile nécessite minimum-scale = 1 sur la méta de la fenêtre d'affichage.
<meta name="viewport" content="minimum-scale=1">
Ça fonctionne maintenant.
Le problème est avec meta tag
vous devez y mettre
<meta name="viewport" content="height=device-height,
width=device-width, initial-scale=1.0,
minimum-scale=1.0, maximum-scale=1.0,
user-scalable=no, target-densitydpi=device-dpi">
En effet, Chrome modification du navigateur height
de viewport
Si vous voulez que l’élément commence et reste en haut de la page, essayez d’utiliser
#header {
position: sticky;
top: 0;
}
Cela fonctionnait pour moi, du moins dans une version antérieure de Chrome Desktop, lorsque la correction ne se comportait pas correctement. Sachez simplement que les éléments positionnés relatifs n'ignoreront pas les éléments positionnés collants comme ils sont fixes.
Je ne sais pas si cela aidera, mais c'est la réponse que je cherchais lorsque je suis arrivé à cette question.
Il est bon de vérifier s'il y a quelque chose qui dépasse dans votre fenêtre. Il peut ne pas être nécessaire d'ajuster la balise méta de la fenêtre.
Si le problème persiste encore ou si vous souhaitez donner un peu plus de temps au navigateur, pensez à ajouter
transform: translate3d(0, 0, 0);
Cela vous aidera, mon ami: D Lorsque vous utilisez également z-index, assurez-vous qu'il est toujours appliqué, en supposant que z-index n'est pas appliqué non collant.