Я создаю приложение для iOS с PhoneGap.Я использую CSS-анимацию translate3d для создания эффекта переворота.
Это прекрасно работает на более простых элементах ... DIV с передним / задним делением и, возможно, дополнительным интервалом или двумя.
Но когда я пытаюсь перевернуть больший элемент ... а именновесь экран, я получаю перерисовки глюков.Что произойдет, как только я поменяю класс css, чтобы начать переход, части «нижнего» div выскакивают через «верхний» div, затем происходит переворот, затем они снова всплывают.И это не весь элемент, который проходит сквозь ... это половина элемента, разделенная вдоль оси, на которой я делаю вращательное вращение 3d.
Какие-нибудь идеи или теории относительно того, что может быть причиной этого?Это происходит так же, как на iPad, как в приложении, так и на рабочем столе в Safari, поэтому, похоже, проблема с webkit.
Могут ли быть некоторые проблемы с CSS?Или же вы пытаетесь сделать полноэкранное вращение translate3d со сложными вложенными элементами с большими фоновыми изображениями, которые больше, чем Safari может обработать?
ОБНОВЛЕНИЕ 1:
Я добился прогресса в сужениипроблема.
Происходит то, что элементы, которые «просматривают», когда я выполняю переворачивание translate3d, оказываются дочерними элементами, которые ранее были расположены с помощью translate3d.
Моя структура «страницы»что я хочу перейти с translate3d:
<div id="frontbackwrapper">
<div id="front">
</div><!--/front-->
<div id="back">
</div><!--/back-->
</div><!--/frontbackwrapper-->
Это работает само по себе.Передний div заменяется на задний div с эффектом переворачивания карты.
Проблема в том, что до полного переворачивания страницы я уже анимировал некоторые элементы внутри #front
div с помощью translate3d:
<div id="frontbackwrapper">
<div id="front">
<div class="modal"></div>
</div><!--/front-->
<div id="back">
</div><!--/back-->
</div><!--/frontbackwrapper-->
Пример CSS:
.modal {
width: 800px;
height: 568px;
position: absolute;
left: 112px;
z-index: 100;
-webkit-transition-duration: 1s;
-webkit-transform: translate3d(0,-618px,0); /* set off screen by default */
}
.modal.modalOn {
-webkit-transform: translate3d(0,80px,0); /* slides the div into place */
}
Если - вместо использования translate3d - я просто переставлю div в стиле top
или преобразую свойство top
, у меня не будет проблемы с просмотром.Конечно, это означает, что я должен отказаться от гладкой анимации или аппаратного ускорения, соответственно.
На данный момент это похоже на ошибку веб-набора.Я буду продолжать играть с этим.Если кто-то сталкивался с этим раньше и нашел обходной путь, я весь в ушах!