Opera Mobile calcula incorrectamente la posición: fijo

Tengo un problema interesante con la posición: arreglado en Opera Mobile 11:

Página de prueba: http://dl.dropbox.com/u/841468/testcase/opera/fixed.html

El

rojo debe permanecer fijo en la parte superior. Si desplazo la página hacia abajo, el elemento se mueve un poco desde el borde superior de la ventana gráfica (exactamente 93 px en los píxeles del dispositivo); pero si me desplazo hacia arriba, el elemento vuelve a la posición correcta.

(Captura de pantalla en HTC Desire):

Captura de pantalla en HTC Desire

Mis hallazgos:

  • Cambiar el nivel de zoom no ayudó y no cambió la posición del elemento desde el borde superior.
  • Funciona correctamente en los emuladores de Opera Mobile (tanto 10.1b como 11)
  • Establecer o eliminar las propiedades “arriba” / “izquierda” no ayuda
  • Establecer las propiedades de “z-index” o “display” a algún valor no lo solucionó
  • Muestra este comportamiento incluso cuando muevo la ventana window.scrollTo(x, y) con window.scrollTo(x, y)
  • Establecer “zoom” para “reiniciar” no funcionó
  • Los eventos del mouse atraviesan este elemento al elemento debajo de él (si está en esa posición incorrecta)
  • Probando hacks IE no funcionó 🙂

Gracias

Este problema se ha corregido internamente, y la versión de Opera Mobile 11.5 debería implementarse correctamente.

Desafortunadamente no hay una solución para esto, parece ser un error conocido en Opera y están trabajando en ello. Trabajé alrededor de este error mediante el uso de un pequeño hack CSS específico de Opera y poniendo el div en posición absoluta mientras tanto:

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

Es un problema conocido en Opera y estamos trabajando activamente en una solución. Aunque es un tema complejo que involucra la pintura cuando se renderiza.