0
html/css로 큐브를 만들었습니다.중심 Y 축을 중심으로 큐브를 회전하면 처음으로 작동합니다.
처음으로 회전 변환을 적용하면 큐브는 중심 Y 축을 중심으로 매우 정교하게 회전합니다.
그러나 두 번째로 회전하는 동안 큐브 종류가 "앞으로"오고 "뒤로 이동"합니다. 큐브는 같은 위치에서 끝나지 만 전환은 다릅니다. 자바 스크립트의
#wrapper {
-webkit-perspective: 1100px;
-webkit-perspective-origin: 50% 300px;
perspective: 1100px;
perspective-origin: 50% 300px;
margin-top: 25px;
}
#cube {
position: relative;
margin: 0 auto;
height: 1150px;
width: 1150px;
-webkit-transform-style: preserve-3d;
-webkit-transition: all 2s ease;
transform-style: preserve-3d;
transition: all 2s ease;
transform: translateZ(-100000px);
}
.face {
position: absolute;
height: 1140px;
width: 1140px;
padding: 20px;
background-color: white;
border: solid 1px black;
}
#cube .one {
transform: translateZ(600px);
}
#cube .two {
transform: rotateY(90deg) translateZ(600px);
}
#cube .three {
transform: rotateY(180deg) translateZ(600px);
}
#cube .four {
transform: rotateY(-90deg) translateZ(600px);
}
#cube .five {
transform: rotateX(-90deg) translateZ(600px) rotate(180deg);
}
#cube .six {
transform: rotateX(90deg) translateZ(600px);
}
비트는
$("#cube").css("transform", "translateZ(-2500px) translateX(-380px)");
자바 스크립트는 당신이 당신의 큐브에 다른 폭을 가지고 있다고 생각 회전
if (direction == "left") {
if (face == 1) {
angle = angle + 90;
$("#cube").css("transform", "rotateY(" + angle + "deg) translateX(2500px) translateZ(-380px)");
face++;
}
else if (face == 2) {
angle = angle + 90;
$("#cube").css("transform", "rotateY(" + angle + "deg) translateZ(2500px) translateX(380px) ");
face++;
}
else if (face == 3) {
angle = angle + 90;
$("#cube").css("transform", "rotateY(" + angle + "deg) translateX(-2500px) translateZ(380px) ");
face++;
}
else if (face == 4) {
angle = angle + 90;
$("#cube").css("transform", "rotateY(" + angle + "deg) translateZ(-2500px) translateX(-380px) ");
face = 1;
}
}
제안 해 주셔서 감사합니다. 나는 모든 얼굴을 검사했고 모두 같은 너비, 높이, 패딩 등이었습니다. 또한 내가 "모든 방향으로 돌리거나 왼쪽에서 오른쪽으로 움직이면"앞으로 움직입니다 "라는 결함이 때때로 첫 번째 얼굴에도 발생합니다. – user1423857
온라인 또는 피들 (fiddle) 코드를 사용하면 코드를 확인하는 것이 좋을 것입니다. –