Este es el sitio de iphone: http://www.thevisionairegroup.com/projects/accessorizer/site/
Después de hacer clic en "jugar ahora", accederá a un juego. Las armas se desplazarán hacia adentro. Puede desplazar el bolso y los accesorios hacia arriba y hacia abajo. Puedes ver que cuando los sueltas, encajan en su lugar. Justo cuando ocurre ese chasquido, se produce un parpadeo. Las únicas animaciones de webkit que estoy usando son:
'-webkit-transition': 'none'
'-webkit-transition': 'all 0.2s ease-out'
'-webkit-transform': 'translate(XXpx, XXpx)'
Elijo la primera o la segunda transición en función de si quiero o no que se anime, y la transformación es la única forma en que muevo las cosas.
Sin embargo, el mayor problema es cuando haces clic en "Hacer coincidir elementos" y luego en "Reproducir de nuevo". Verá que las armas se animan, todo el fondo de los accesorios / carteras se vuelve blanco. ¿Alguien puede por favor irradiarme una idea de por qué está sucediendo esto?
Pruebe esto y, con suerte, le ayudará:
#game { -webkit-backface-visibility: hidden; }
fuente
body {-webkit-transform:translate3d(0,0,0);}
fuente
#wrapper
elemento ya que aplicarlo en el cuerpo arruinaría el diseño.-webkit-backface-visibility: hidden;
provocó que las transformaciones de escala fueran borrosas.body {-webkit-transform:translate3d(0,0,0);}
funcionó un placer.scale(1)
provocó el parpadeo. muchas graciasLa respuesta real para mi caso está aquí. Alguien estaba cerca con: -webkit-backface-visibilidad: oculto; Pero la respuesta real es -webkit-backface-visible: oculto; debe agregarse al div principal .
fuente
-webkit-backface-visibility: hidden;
al div padre, el div animado Y los hijos del div animado. Una vez que hice eso, funcionó a la perfección.También tuve un problema con una transición CSS "parpadeante". La animación en cuestión era un menú que se deslizaba desde fuera de la pantalla, y justo cuando finalizaba la animación, todo el menú parpadeaba / parpadeaba.
Al final resultó que, esto fue causado por una característica real de iOS, el "toque resaltado" , que por alguna razón se activó después de que terminó la animación CSS (es decir, mucho después del toque real), y resaltó todo el menú en lugar de solo el elemento que fue intervenido. "Solucioné" el problema al deshabilitar por completo el toque-resaltado, como se describe aquí :
-webkit-tap-highlight-color: rgba(0,0,0,0);
fuente
La respuesta de Michael
-webkit-backface-visibility: hidden;
funcionó cuando nos enfrentamos a este problema. TeníamostranslateZ(0px)
nuestra<body>
etiqueta para evitar unIFRAME
error de límite de iOS 3.1.3 y anterior y causó que los anims parpadearan. ¡Añadiendo-webkit-backface-visibility: hidden;
a cada elemento que animamos arreglamos el parpadeo! Salvavidas.fuente
div { -webkit-tap-highlight-color: rgba(255, 255, 255, 0); }
Me di cuenta de que cuando tenía un estado de desplazamiento en un div, la página parpadeaba, incluso si no tenía ningún css o js adjunto. tal vez esto ayude a alguien más.
fuente
Si alguien encuentra que la visibilidad del reverso no funciona, puede mirar las propiedades que ya están en su elemento animado. Para nosotros, descubrimos que
overflow-y: scroll
en un elementoabsolute
ofixed
posicionado estaba causando un gran parpadeo en iOS.Simplemente quitando lo
overflow-y: scroll
fijo.fuente
overflow-y: scroll
ayudó a mi caso. Muchas gracias!A pesar de que tenía
-webkit-transform-style: preserve-3d;
y-webkit-backface-visibility: hidden
el parpadeo todavía estaba sucediendo.En mi caso la causa fue el
z-index
. Aumentarlo en el elemento activo ayudó.fuente
Aquí tienes una nueva solución. Estaba configurando la imagen de fondo con jQuery, y ninguno de los trucos de renderizado 3D funcionó. Así que intenté usar clases para definir las propiedades. ¡Voilà! Suave como la mantequilla.
Esto causa parpadeo:
$('#banner').css('backgroundImage', 'url("slide_1.jpg")';
En su lugar, haz:
$('#banner').attr('class', '.slide-1');
con clases definidas:
#banner { -webkit-transition: background-image .25s; } .slide-1 { background-image: url("slide_1.jpg"); } .slide-2 { background-image: url("slide_2.jpg"); }
fuente
Prueba esta solución . Me funciona en Phonegap + jQM 1.4.0 :
Cambia esto
<meta name="viewport" content="width=device-width, initial-scale=1">
A esto en su lugar:
<meta name="viewport" content="width=device-width, user-scalable=no" />
Lea más aquí: http://www.fishycode.com/post/40863390300/fixing-jquery-mobiles-none-transition-flicker-in
fuente
Había pasado mucho tiempo tratando de resolver este problema para Ember Animated Outlets, Phonegap e iOS configuración de .
Aunque simple, tuve que agregar un fondo a cada elemento principal de nivel superior que se incluyó en las animaciones CSS. En otras palabras, asegúrese de que en ningún momento de sus vistas haya un elemento que no tenga fondo.
Mi configuración fue la siguiente para cada plantilla y los tres elementos tenían un color de fondo asignado:
<header></header> <body class="content"></body> <footer></footer>
fuente
En lugar de aplicar la transición a "todos", solo especifique la que realmente necesita. Eliminó el parpadeo de mi caso.
fuente
Probé todo lo anterior y todavía tenía problemas importantes de parpadeo en Firefox y Chrome. Lo arreglé, o al menos lo reduje en gran medida a un problema aceptable al eliminar la transformación de sombra de cuadro que estaba causando muchos repintados durante la animación. Seguí esto y lo modifiqué según mis necesidades:
http://tobiasahlin.com/blog/how-to-animate-box-shadow/
fuente
para mí, el problema del parpadeo en safari se resolvió quitando
will-change: transform;
el elemento animado.también podría resolver este problema agregando
overflow: hidden;
al padre, pero con esto, todos los elementos setransform: translateZ()
volvieron ineficacesfuente
Tuve que usar un valor real (en lugar de 0):
.no-flick{ -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-transform:translateZ(0.1px); transform: translateZ(0.1px); /* needs an actual value */ }
Ejemplo:
<div class="foo no-flick"></div>
Por lo que he leído , el parpadeo se debe a que el navegador cambia entre la representación de hardware y software. Y creo que los fabricantes de navegadores son conscientes de que sí "translate3d (0,0,0)" para forzar el procesamiento de hardware, por lo que ahora pueden estar ignorando estos valores falsos.
=> El uso de un valor real puede hacer que las cosas se "peguen".
De todos modos, funcionó para mí.
fuente
Experimenté parpadeo al realizar una transición de diapositiva al usar un navegador web de Android predeterminado.
He usado el siguiente CSS de transición:
-webkit-transition: all 2s; -webkit-transform: translate(100%,0);
Ninguna de las soluciones alternativas mencionadas en este hilo ha ayudado a resolver el problema. Finalmente encontré la solución. La fuente del parpadeo es la palabra clave all, que significa realizar todas las transiciones posibles. Lo cambié para realizar solo la transformación y el problema se ha resuelto:
-webkit-transition: -webkit-transform 2s; -webkit-transform: translate(100%,0);
fuente
Lo que me solucionó fue retrasar la asignación de la regla CSS de transformación-traducción. Algo como esto:
HTML:
<div class="animate-this loading"></div>
CSS:
.animate-this { &:not(.loading) { transform: -webkit-translate(50px); transform: translate(50px); transition: -webkit-transform 0.3s, transform 0.3s; } }
JavaScript (jQuery):
$(document).ready(function(){ window.setTimeout(function(){ $('.animate-this').removeClass('loading'); }, 250); });
… Porque
-webkit-backface-visibility: hidden;
no hizo nada por mí.fuente
Así que encontré una solución para este problema donde ningún otro funcionaba correctamente.
CSS:
.ios-animation-fixer { position: fixed; width: 100%; height: 10px; top: -10px; background-color: green; z-index: 1; pointer-events: none; visibility: hidden; }
HTML:
<div class="ios-animation-fixer"></div>
Luego, establezca que el
z-index
elemento animado sea> 1. Esto de alguna manera engaña a los dispositivos iOS para que representen la animación de manera diferente y evita el parpadeo en mi escenario. El ajuste de los valores del índice z puede ser útil si esta solución no funciona desde el principio.fuente
ACTUALIZACIÓN 2019
Puede activar el parpadeo simplemente agregando estas reglas al elemento en el que se usa la transición.
-webkit-transform: translate3d(0, 0, 0);
Trabajó para mí en Safarai
fuente