2016-03-05 1 views
0

Depuis la dernière mise à jour de l'iPhone/iPad, le menu de navigation de la barre latérale clignote lorsque vous faites défiler vers le haut ou le bas. J'ai essayé plusieurs approches, mais rien ne fonctionne vraiment.Barre latérale Le menu de navigation clignote pendant le défilement sur l'iPhone/iPad

Le premier essai était d'empêcher le défilement (corps), lorsque le menu est ouvert:

.overflow { 
    position:relative; 
    overflow:hidden; 
    height:100%; 
} 

Malheureusement, cela ne résout pas le problème, donc je l'ai essayé:

.overflow { 
    position:fixed; 
    overflow:hidden; 
    height:100%; 
} 

Cette fonctionne mais quand un utilisateur ouvre le menu, la page saute en haut et la barre d'adresse apparaît également. IMO pas une bonne expérience utilisateur.

J'ai aussi essayé d'ajouter à plusieurs éléments:

div { 
    -webkit-backface-visibility: hidden; /* Chrome, Safari, Opera */ 
      backface-visibility: hidden; 
} 

Donc, maintenant que je pouvais soit essayer de le résoudre avec l'approche de position fixe ou essayer d'éviter le vacillement. Je ne sais pas pourquoi mais le 'débordement: caché' ne marche pas vraiment sur les iPhones.

Quelqu'un at-il une bonne solution pour cela?

Répondre

1

Cela a quelque chose à voir avec la «transition». Par exemple. n'utilisez pas 'translateX()' ... utilisez translate3d() pour activer l'accélération matérielle et l'ajouter à l'encapsuleur animé. Résolu mon problème:

.animClass { 
    -webkit-transform: translate3d(0, 0, 0); 
    -webkit-backface-visibility: hidden; 
    -webkit-perspective: 1000; 
} 

Merci à: https://davidwalsh.name/translate3d

0

Normalement, ne pas spécifier la largeur et la hauteur du menu de navigation provoque un tel effet.

+0

Il y a une hauteur et une largeur définie. Pouvez-vous me donner un exemple précis? – grindking

+0

Je cherchais une solution depuis plusieurs jours maintenant et j'ai découvert que cela avait quelque chose à voir avec la transition CSS. D'autres ont évidemment un problème similaire. Voici quelques approches. http://stackoverflow.com/questions/9807620/ipad-safari-scrolling-causes-html-elements-to-disappear-and-reappear-with-a-dela https://davidwalsh.name/translate3d Il devrait être possible de le résoudre avec: -webkit-transform: translate3d (0, 0, 0); – grindking