Все,
Я работаю над веб-приложением специально для iPad, и я использую переход CSS3 для анимации div (переместите его слева направо).
Мой класс выглядит следующим образом:
.mover {
-webkit-transition:all 0.4s ease-in-out;
}
Когда пользователь нажимает кнопку, я делаю это:
var s = "translate3d(" + newPosition + "px, 0, 0)";
$('.mover ').css('-webkit-transform', s);
Это отлично работает EXCEPT FIRST, когда пользователь запускает переход; в первый раз наблюдается очень заметное мерцание.
Я понимаю, что мне не нужно использовать translate3d, так как я только перемещаю div слева и справа, но, как я понимаю, это заставляет iPad использовать ускорение GPU. (Это правильно?)
Большое спасибо заранее!
[ОБНОВЛЕНИЕ]
Я немного двусмысленно относился к "мерцанию". Короче говоря, я экспериментировал с широким спектром переходов CSS3 (в частности, на iPad) и последовательно - я заметил заметное мерцание в начале или перехода.
Иными словами, сами переходы ОЧЕНЬ гладкие. Однако, в зависимости от точных настроек, там заметное мерцание перед началом или завершением перехода.
Вот еще один пример: у меня есть три фотографии (PNG), уложенные друг на друга.
Нижний PNG имеет opacity = 1.0, верхняя часть 2 имеет непрозрачность = 0.0. Используя -webkit-ключевые кадры, я могу получить шелковистые плавные переходы, когда фотографии исчезают и исчезают. Когда анимация заканчивается, нижняя фотография заканчивается на opacity = 1.0, две верхние - на opacity = 0.0. (Это должно быть их окончательное состояние).
Однако, как только анимация заканчивается, нижняя фотография мерцает. Это как если бы браузер был вынужден перерисовать/перерисовать экран, и это занимает несколько долей секунды.
Это достаточно плохо, чтобы испортить эффект и сделать переходы невозможными. (На моем iMac он почти, но не совсем, незаметен. На iPad он не поддается).