Я разрабатываю приложение для iPad с помощью HTML5/CSS3. Я не использую фреймворк и просто использую все, что на нем поддерживается. Я создал некоторые анимации css3 для эмуляции типичного iOS, сдвигающегося влево или скольжения вправо при навигации между экранами. Вот пример слайд-левого анимации, который использует аппаратное ускорение CSS3 для iPad: (ipad работает 4.2).iPad css3 анимация мерцает после использования клавиатуры
/*************************************************
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/ и статьи, связанные с ними, но не добились успеха.
Любые другие предложения?
Update 1/13 @ 9 утра
Я добавил этот CSS, и это помогло:
.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.
Я по-прежнему ищу полезный совет! – Daniel
Запуск щедрости для тех, кто может помочь мне решить проблему. – Daniel