2011-05-22 2 views
1

J'ai un problème intéressant avec position: fixed dans Opera Mobile 11:Opera Mobile calcule de manière incorrecte position: fixed

page de test: http://dl.dropbox.com/u/841468/testcase/opera/fixed.html

Le <div> rouge doit rester fixe sur le dessus. Si je fais défiler la page vers le bas, l'élément se déplace un peu du bord supérieur de la fenêtre d'affichage (exactement 93px dans les pixels de l'appareil); mais si je défile vers le haut, l'élément revient à la position correcte.

(Capture d'écran sur HTC Desire):

Screenshot on HTC Desire

Mes résultats:

  • Changer le niveau de zoom n'a pas aidé et n'a pas changé la position de l'élément de bord supérieur.
  • Il fonctionne correctement dans Opera émulateurs mobiles (à la fois 10.1b et 11)
  • fixer ou enlever « top »/propriétés « gauche » n'a pas aidé
  • Définition des propriétés « z-index » ou « affichage » à une certaine valeur n'a pas fixé il
  • il montre ce comportement même quand je me déplace avec fenêtre window.scrollTo(x, y)
  • Réglage « zoom » pour « reset » n'a pas fonctionné
  • Les événements de souris à travers cet élément se à l'élément en dessous (s'il est dans cette position incorrecte)
  • IE ne hacks essayer fonctionne pas :)

Merci

+0

Info: Aussi cassé dans Opera Mobile 11.1 – kuvik

Répondre

3

Ce problème a été corrigé en interne et la version d'Opera Mobile 11.5 devrait être déployée correctement.

2

Malheureusement, il n'y a pas de solution pour cela, il semble être un bug connu à l'Opéra et ils travaillent là-dessus. J'ai travaillé autour de ce bogue en utilisant un peu de hack CSS spécifique à Opera et en plaçant la div en position absolue dans le temps:

noindex: -o-prefocus, div {position: absolute; }

+0

Je viens de vérifier dans Opera 11.5 et je peux confirmer que c'est corrigé. Il se comporte maintenant comme dans Firefox Mobile, ce qui signifie que la position fixe reste à la position initiale avant de réapparaître ... Je suppose que cela est dû à des problèmes de performances, mais ce n'est pas une solution élégante :( – yvg

0

C'est un problème connu chez Opera et nous travaillons activement sur un correctif. C'est un problème complexe impliquant la peinture lors du rendu.

Questions connexes