Estoy trabajando en una aplicación web específicamente para el iPad, y estoy usando una transición CSS3 para animar un div (moverlo de izquierda a derecha).
Mi clase es el siguiente:
.mover {
-webkit-transition:all 0.4s ease-in-out;
}
Cuando el usuario hace clic en un botón, hago esto:
var s = "translate3d(" + newPosition + "px, 0, 0)";
$('.mover ').css('-webkit-transform', s);
Esto funciona muy bien SALVO la PRIMERA vez que el usuario activa la transición; la primera vez, hay un parpadeo muy notable.
Me doy cuenta de que no necesito usar translate3d ya que solo estoy moviendo el div hacia la izquierda y hacia la derecha, pero, según tengo entendido, esto obliga al iPad a usar la aceleración de la GPU. (¿Es esto correcto?)
¡Muchas gracias de antemano!
[ACTUALIZACIÓN]
que estaba un poco ambigua sobre el "parpadeo". En resumen: he estado experimentando con una amplia variedad de transiciones CSS3 (específicamente en el iPad), y de forma consistente, he notado un parpadeo distinto en el start o end de la transición.
En otras palabras, las transiciones mismas son MUY fluidas. Sin embargo, dependiendo de la configuración precisa, hay un parpadeo notable justo antes de que comience o finalice la transición.
Aquí hay otro ejemplo: tengo tres fotos (PNG) apiladas una encima de la otra.
El PNG inferior tiene opacidad = 1.0, los 2 superiores tienen opacidad = 0.0. Usando -webkit-keyframes, puedo obtener transiciones suaves como la seda a medida que las fotos se desvanecen. Cuando termina la animación, la foto inferior termina en opacidad = 1.0, los dos primeros en opacidad = 0.0. (Ese debería ser su estado final).
Sin embargo, cuando termina la animación, la foto inferior parpadea. Es como si el navegador obligara a volver a dibujar/volver a pintar la pantalla, y eso lleva algunas fracciones de segundo.
Ya es suficientemente malo para estropear el efecto y hacer que las transiciones sean inutilizables. (En mi iMac es casi, pero no del todo, imperceptible. En el iPad, es imperdible).
puede confirmar que este es un error en al menos Safari 6.0.5 – lol