Ich entwickle eine App für das iPad mit HTML5/CSS3. Ich verwende kein Framework und verwende nur das, was nativ auf dem Gerät unterstützt wird. Ich habe einige CSS3-Animationen erstellt, um das typische iOS nach links oder rechts gleiten zu simulieren, wenn zwischen den Bildschirmen navigiert wird. Hier ist ein Beispiel für die Slide-Left-Animation, die die CSS3-Hardwarebeschleunigung des iPad nutzt: (Das iPad läuft mit 4.2).iPad css3 Animation flackert nach der Verwendung der Tastatur
/*************************************************
Slide Left
*************************************************/
.screen.slideleft{
-webkit-animation-duration: 0.5s;
-webkit-animation-timing-function: ease-in-out;
}
.screen.slideleft.outgoing{
z-index: 50 !important;
-webkit-animation-name: slideleft-outgoing;
}
.screen.slideleft.incoming{
z-index: 100 !important;
-webkit-animation-name: slideleft-incoming;
}
@-webkit-keyframes slideleft-outgoing{
from { -webkit-transform: translate3d(0%,0,0); }
to { -webkit-transform: translate3d(-100%,0,0); }
}
@-webkit-keyframes slideleft-incoming{
from { -webkit-transform: translate3d(100%,0,0); }
to { -webkit-transform: translate3d(0%,0,0); }
}
Ich habe auch diesen CSS, die ich versucht habe zu verwenden, das Flimmern zu beheben:
.incoming,
.outgoing{
display: block !important;
-webkit-backface-visibility: hidden;
}
Dies funktioniert gut, bis die iPad-Tastatur verwendet wird. Nach diesem Punkt flackern alle Animationen stark.
Ich habe nach Beispielen für eine iPad HTML5 App gesucht, die die Tastatur verwendet und danach kein Flackern mehr hat, aber nicht viel aufgedreht ist. Die jqTouch Demos zeigen das gleiche Verhalten auf dem iPad (obwohl ich weiß, dass sie für das iPhone entwickelt wurden).
Ich habe ein paar Posts/Fragen zu ähnlichen Fragen gestellt, aber noch nie eine gute Antwort gefunden. Ich bin durch http://css3animator.com/2010/12/fight-the-flicker-making-your-css3-animation-bomb-proof/ und die dort verlinkten Artikel gegangen, habe aber keinen Erfolg gehabt.
Haben Sie noch weitere Vorschläge?
-Update 1/13 @ 9.00
Ich habe diese CSS hinzugefügt und es hat mir sehr geholfen:
.incoming *,
.outgoing *{
-webkit-backface-visibility: hidden;
-webkit-transform: translate3d(0,0,0); /* This helps with the flicker a lot. */
}
The foreground elements don't seem to flicker anymore, but the backgrounds still do. Still looking for some help or helpful resources on Mobile Safari's memory handling tactics.
Update 1/16 @ 11pm
Increasing the z-index as suggested by anonymous. Didn't seem to make a difference.
Update 1/17 @ 8:30am
I've posted a demo of the problem here .
The transitions between screens work great...until you tap/click inside one of the form fields. After the keyboard slides up and returns, all the transitions flicker. Go to the URL inside the iOS simulator or on an actual iPad to see what I'm talking about.
Ich bin immer noch auf der Suche nach hilfreicher Beratung! – Daniel
Ein Kopfgeld für jemanden beginnen, der mir helfen kann, das Problem zu lösen. – Daniel