更改CSS变换旋转轴?(Change CSS transform rotation axis?)

2019-10-30 10:13发布

我花了很长的时间和大量的帮助下从SO建立这个立方体,并获得面对Z:0,因此准确200x200像素。 我想它转动,使得所有的面尺寸为200x200,并在相同的位置。

小提琴: http://jsfiddle.net/scottbeeson/phJpS/7/

相对CSS:

.itemView {
    -webkit-perspective:2000;
    -webkit-margin-start: 0 !important;
    -webkit-margin-before: 0 !important;
    -webkit-margin-end: 0 !important;
    -webkit-margin-after: 0 !important;
}

.cube {
    position: absolute;
    -webkit-transform-style: preserve-3d;
    -webkit-transition: -webkit-transform 1s;
}

.cube figure {
    display: block;
    position: absolute;
    width: 198px;
    height: 198px;
    border: 0px solid black;
    color: white;
    margin: 0px;
    padding: 0px;
}

.cube.panels-backface-invisible figure {
    -webkit-backface-visibility: hidden;
}

.cube .front  {     
    background-color: #555;
    border: 1px solid #ccc; 
}
.cube .back   {
    background-color: #555;
    border: 1px solid #ccc;
}
.cube .right  { 
    background-color: #555;
    border: 1px solid #ccc;
}
.cube .left   { 
    background-color: #555;
    border: 1px solid #ccc;
    }
.cube .top    {
    background-color: #555;
    border: 1px solid #ccc;
    }
.cube .bottom { 
    background-color: #555;
    border: 1px solid #ccc;
    }

.cube .front  {
    -webkit-transform: translateZ(0px );
}
.cube .back   {
    -webkit-transform: rotateX( -180deg ) translateZ( 200px );
}
.cube .right {
    -webkit-transform: rotateY(   90deg ) translateZ( 100px ) translateX(100px);
}
.cube .left {
    -webkit-transform: rotateY(  -90deg ) translateZ( 100px) translateX(-100px);
}
.cube .top {
    -webkit-transform: rotateX(   90deg ) translateZ( 100px ) translateY(-100px);
}
.cube .bottom {
    -webkit-transform: rotateX(  -90deg ) translateZ( 100px ) translateY(100px);
}

.cube.show-front {
    -webkit-transform: translateZ( 0px );
}
.cube.show-back {
    -webkit-transform: rotateX( -180deg );
}
.cube.show-right {
    -webkit-transform: rotateY(  -90deg );
}
.cube.show-left {
    -webkit-transform: rotateY(   90deg );
}
.cube.show-top {
    -webkit-transform: rotateX(  -90deg );
}
.cube.show-bottom {
    -webkit-transform: rotateX(   90deg );
}

Answer 1:

你没有留给我的时间在其他问题回答:-)

我是什么意思是添加另一个层次,多维数据集,指定基数下。 还有适用于Z平面运动:

.base {
     width: 100%;
     height: 100%;
     position: absolute;
     -webkit-transform-style: preserve-3d;
        -moz-transform-style: preserve-3d;
          -o-transform-style: preserve-3d;
             transform-style: preserve-3d;
     -webkit-transform: translateZ(-100px );
}

这样,该演示的其余所有作品,你可以轻松地将你想要的立方体。

新的演示



Answer 2:

因此,我通过应用下面的转换,而它的旋转在错误的轴线基本上只是移动立方体样的黑客攻击。 它结束了它应该,我会使用它,如果我必须这样做,但我宁愿它正确地旋转,如果别人可以提供帮助。

.cube.show-front {
    -webkit-transform: translateZ( 0px );
}
.cube.show-back {
    -webkit-transform: rotateX( -180deg ) translateZ(200px) translateY(-200px);
}
.cube.show-right {
    -webkit-transform: rotateY(  -90deg ) translateX(-200px);
}
.cube.show-left {
    -webkit-transform: rotateY(   90deg ) translateZ(200px);
}
.cube.show-top {
    -webkit-transform: rotateX(  -90deg ) translateZ(200px);
}
.cube.show-bottom {
    -webkit-transform: rotateX(   90deg ) translateY(-200px);
}

更新小提琴: http://jsfiddle.net/scottbeeson/phJpS/8/



文章来源: Change CSS transform rotation axis?