我认为我在这里犯了一个很大的思维错误。
请查看这个小提琴:http: //jsfiddle.net/kimgysen/zdP8q/
我想了解如何在 3D 中自己构建一个旋转的立方体,而不是仅仅复制它,所以我正在试验;但在第一阶段,我已经陷入困境。
首先是代码:
<section class="container">
<div id="cube">
<figure class="front">1</figure>
<figure class="back">2</figure>
<!--
<figure class="right">3</figure>
<figure class="left">4</figure>
<figure class="top">5</figure>
<figure class="bottom">6</figure>-->
</div>
.container {
width: 200px;
height: 200px;
position: relative;
margin: 0 auto 40px;
border: 1px solid #CCC;
-webkit-perspective: 1000px;
perspective: 1000px;
}
#cube {
margin: 0px;
width: 100%;
height: 100%;
position: absolute;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
-webkit-transition: -webkit-transform 1s;
transition: transform 1s;
-webkit-transform: rotateX( -20deg ) rotateY( 20deg );
transform: rotateX( -20deg ) rotateY( 20deg );
}
#cube figure {
margin: 0px;
display: block;
position: absolute;
width: 196px;
height: 196px;
border: 2px solid black;
line-height: 196px;
font-size: 120px;
font-weight: bold;
color: white;
text-align: center;
}
#cube.panels-backface-invisible figure {
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-o-backface-visibility: hidden;
backface-visibility: hidden;
}
#cube .front { background: hsla( 0, 100%, 50%, 0.7 ); }
#cube .back { background: hsla( 60, 100%, 50%, 0.7 ); }
#cube .front {
-webkit-transform: translateZ( 100px );
transform: translateZ( 100px );
}
#cube .back {
-webkit-transform: rotateX( 90deg ) translateZ( 100px );
transform: rotateX( 90deg ) translateZ( 100px );
}
我想知道的是这一行:
-webkit-transform: rotateX( 90deg ) translateZ( 100px );
现在这对你来说将是一个非常愚蠢的问题,但仍然:
为什么 translateZ 将图形向上移动越过 Y 轴?
将 translateZ 更改为 translateY 时,它会跨 Z 轴移动:-s
-webkit-transform: rotateX( 90deg ) translateY( 100px );
从小学开始我就认为:X轴=水平,Y轴=垂直,Z轴是垂直于两者的轴(即指向你)。
有人可以向我解释发生了什么吗?此时我觉得自己很傻=s