Я разрабатываю приложение для iPad с помощью HTML5/CSS3. Я не использую фреймворк и просто использую все, что на нем поддерживается. Я создал некоторые анимации css3 для эмуляции типичного iOS, сдвигающегося влево или скольжения вправо при навигации между экранами. Вот пример слайд-левого анимации, который использует аппаратное ускорение iPad CSS3: (ipad работает 4.2).
/*************************************************
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); }
}
У меня также есть этот CSS, который я попытался использовать для исправления мерцания:
.incoming,
.outgoing{
display: block !important;
-webkit-backface-visibility: hidden;
}
Это отлично работает, пока клавиатура iPad не используется. После чего все анимации сильно мерцают.
Я искал примеры iPad HTML5-приложения, которое использует клавиатуру и не имеет мерцаний впоследствии, но не слишком много. Демонстрации jqTouch демонстрируют такое же поведение на iPad (хотя я знаю, что они были предназначены для iPhone).
Я поднял несколько сообщений/вопросов по подобным вопросам, но никогда не нашел хорошего ответа. Я прошел через http://css3animator.com/2010/12/fight-the-flicker-making-your-css3-animation-bomb-proof/ и статьи, связанные с ними, но не добились успеха.
Любые другие предложения?
Обновление 1/13 @9am
Я добавил этот css, и это очень помогло:
.incoming *,
.outgoing *{
-webkit-backface-visibility: hidden;
-webkit-transform: translate3d(0,0,0); /* This helps with the flicker a lot. */
}
Элементы переднего плана, похоже, больше не мерцают, но фон все еще работает. Все еще ищете какую-то помощь или полезные ресурсы в тактике памяти Mobile Safari.
Обновление 1/16 @11pm
Увеличение индекса z, как было предложено анонимным. Кажется, не имеет значения.
Обновление 1/17 @8:30 утра
Я опубликовал демо-версию проблемы здесь.
Переходы между экранами отлично работают... пока вы не коснетесь одного из полей формы. После того, как клавиатура сдвинется и вернется, все переходы мерцают. Перейдите к URL-адресу внутри симулятора iOS или на самом iPad, чтобы узнать, о чем я говорю.