PhoneGap으로 iOS 앱을 제작하고 있습니다. translate3d CSS 애니메이션을 사용하여 '뒤집기'효과를 만듭니다.webkit translate3d issues (peek-thru)
이것은 앞면/뒷면 div가있는 DIV와 추가 스팬 또는 두 개의 요소가있는 간단한 요소에 효과적입니다.
그러나 더 큰 요소, 즉 전체 화면을 뒤집으려고하면 다시 그리기가 발생합니다. 전환을 시작하기 위해 CSS 클래스를 교체하자마자 'bottom'div 부분이 'top'div가 된 다음 플립이 발생하고 다시 팝업됩니다. 그리고 그것을 통해 보여 주는 전체 요소가 아닙니다 ... 요소 회전의 3 차원 회전을 수행 할 축을 따라 분할 된 요소의 절반입니다.
어떤 아이디어 나 이론이 원인 일 수 있습니까? 아이 패드와 앱 모두 Safari의 데스크톱에서 똑같이 발생하므로 웹킷 문제로 보입니다.
CSS 문제 일 수 있습니까? 아니면 사파리가 처리 할 수있는 것보다 큰 배경 이미지가있는 복잡한 중첩 요소를 사용하여 전체 화면 translate3d 회전을 시도하고 있습니까?
업데이트 1 :
나는이 문제의 범위를 좁히는 데 진전을 보였습니다.
나는 translate3d 플립을 할 때 '엿보기'하는 요소가 이전에 translate3d를 통해 배치되었던 자식 요소라는 것을 알게되었습니다. 내가 translate3d로 전환 할
내 '페이지'구조 :
<div id="frontbackwrapper">
<div id="front">
</div><!--/front-->
<div id="back">
</div><!--/back-->
</div><!--/frontbackwrapper-->
이 그 자체에서 작동합니다. 앞쪽 div는 뒤쪽 div로 대체되고 카드 뒤집기 효과가 적용됩니다.
<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 */
}
혹시 ...
문제는 이전에 전체 페이지 플립을하고, 나는 이미 #front
사업부 사용 translate3d 내에서 일부 요소를 애니메이션 한 것입니다 translate3d 대신에 top
스타일로 div의 위치를 변경하거나 top
속성을 변환하면 필자는 엿보기 문제가 발생하지 않습니다. 물론, 그것은 매끄러운 애니메이션이나 하드웨어 가속을 포기해야한다는 것을 의미합니다.
이 시점에서 웹킷 버그처럼 보입니다. 나는 그걸 가지고 노는 것을 계속할 것이다. 이전에 누군가가이 문제에 부딪혀 해결 방법을 발견하면 나는 모두 귀입니다!
@IanJamison 나는이 답변이 몇 년 전임을 알고 있지만, 'one'을 'on'으로 변경하는 것이 올바른지 나는 알지 못합니다. 'on'은 본질적으로 내가 이해하는 것에서 (on가 호출 할 때) 동일하지만 완료시 이벤트 핸들러를 제거하지는 않습니다. 솔직하게 말해서이 특정 응용 프로그램에서 차이가 있었는지를 생각해 내지는 못했습니다. 그러나 시간이 지남에 따라 달라지는 것은 매우 의도적 인 이유가있는 것으로 보입니다. –