모바일 Safari/(iPad 및 iPhone)에서 볼 때 내 포트폴리오 사이트 http://robthwaites.com에서 전환 애니메이션의 느린/janky 렌더링 문제를 해결하기가 어렵습니다.CSS 애니메이션 변형 : iPad의 성능 저하 번역
내 홈페이지 미리보기 이미지 중 하나를 클릭하면 .presentation 콘텐츠가 전환되면 큰 div가 번역됩니다 (div.workdoor-top 및 div.workdoor-bottom, 각각 큰 삼각형 회색 배경 SVG). 45도 각도의 '와이프'효과를 만듭니다.
전환은 jQuery. addClass()로 처리됩니다 (div에 .hidden 클래스 추가). 전환은 모든 데스크탑 브라우저에서 매끄럽습니다.
나는이 기사의 팁을 따라 갔다. 내 변환을 transform : translateX 만 유지한다고 생각한다. http://www.html5rocks.com/en/tutorials/speed/high-performance-animations/
이 전환에서 많은 Recalculate Style이 발생하는 Chrome Dev Tools Timeline을 사용하여 문제가 발생한 곳을 관찰하려고 시도했으나 어디에서 문제가 발생했는지 그리고 어떻게 해결할 수 있는지 잘 모르겠습니다.
PNG에 대한 SVG 배경 이미지를 변경해도 성능 향상에 도움이되지 않았습니다.
죄송합니다. 더 명확하게 말할 수는 없지만 (a) Chrome 개발 도구 타임 라인 (또는 다른 개발 도구)에서 문제를 타겟팅 할 수 있는지 알고 싶습니다. (b) 해결 방법을 찾으십시오. 그래서 이것은 모바일 장치에서 부드럽게 움직입니다.
전체 사이트는 CSS입니다. DIV는 아래의 전환과 함께 문제가됩니다. 이 추가
.workdoor-top {
position: absolute;
top: 0%;
right: 0%;
z-index: 30;
width: 2000px;
height: 2000px;
background: url(../portfolio-door-top.svg) top right no-repeat;
-webkit-background-size: cover;
background-size: cover;
pointer-events: none;
-webkit-transition: -webkit-transform 0s ease;
transition: transform 0s ease;
-webkit-transform: translate(0px, 0);
-ms-transform: translate(0px, 0);
transform: translate(0px, 0);
}
.workdoor-top.hidden {
-webkit-transform: translate(2000px, 0);
-ms-transform: translate(2000px, 0);
transform: translate(2000px, 0);
-webkit-transition: -webkit-transform 1s ease;
transition: transform 1s ease;
}
.workdoor-bottom {
position: absolute;
bottom: 0;
left: 0;
z-index: 30;
width: 2000px;
height: 2000px;
background: url(../portfolio-door-bottom.svg) bottom left no-repeat;
-webkit-background-size: cover;
background-size: cover;
pointer-events: none;
-webkit-transition: -webkit-transform 1s ease;
transition: transform 1s ease;
-webkit-transform: translate(-15px, 0);
-ms-transform: translate(-15px, 0);
transform: translate(-15px, 0);
}
.workdoor-bottom.hidden {
-webkit-transform: translate(-2000px, 0);
-ms-transform: translate(-2000px, 0);
transform: translate(-2000px, 0);
-webkit-transition: -webkit-transform 0s ease;
transition: transform 0s ease;
}
불행하게도이 어떤 차이를 보이지 않았다
이여기를 설명하는 좋은 포스트가있다. 위의 담요 규칙을 추가하면 모든 요소의 transform : 값이 대체되고 전환이 중단됩니다. 따라서 translateZ (0)를 각 개별 요소 변형 속성에 추가했습니다. 나는 다른 속성들도 시도했다. iPad는 꽤 기본적인 애니메이션 이었으면 좋겠다고 생각합니다. – spacewindow
죄송합니다. 링크 된 블로그 게시물에있는 것 이외에 시도해야 할 항목이 무엇인지 알지 못하고 변환 대신 "왼쪽으로"애니메이션을 적용하려고합니다. – tagawa