专栏名称: JavaScript
面向JavaScript爱好人员提供:前端最新资讯、原创内容、JavaScript、HTML5、Ajax、jQuery、Node.js等一系列教程和经验分享。
目录
相关文章推荐
51好读  ›  专栏  ›  JavaScript

手把手教你玩转 CSS3 3D 技术

JavaScript  · 公众号  · Javascript  · 2017-04-25 11:13

正文

请到「今天看啥」查看全文


. piece - 6 {

background : #FF6600;

}

当然,在你完成这步之后你还是只看到一个正方形,也就是我们的piece-6,因为我们的3Dtransform还没开始

第四步:3D变换来袭

首先是实现走马灯,我们先不要让它走,先实现灯部分。

如何实现呢?因为要构成一个圆,圆是360度,而我们有6个piece,那么,很容易想到,我们需要把每一个piece以递增60度的方式rotateY,就变成如下

如何把他们从中心拉开呢?

这里我们还要注意一点,在我们使元素绕Y轴旋转以后,其实X轴和Z轴也会跟着旋转,所所以正方体的每个面的垂直线还是Z轴,我们就只需要改变下translateZ的值,而当translateZ为正的时候,就朝着我们的方向走来,这样就可以拉开了
但是拉开的距离如何衡量?

是不是一目了然了~

下面我们再修改下css

.piece-1 {

   background: #FF6666;

   -webkit-transform: rotateY(0deg) translateZ(173.2px);

   -ms-transform: rotateY(0deg) translateZ(173.2px);

   -o-transform: rotateY(0deg) translateZ(173.2px);

   transform: rotateY(0deg) translateZ(173.2px);

 

}

.piece-2 {

   background: #FFFF00;

   -webkit-transform: rotateY(60deg) translateZ(173.2px);

   -ms-transform: rotateY(60deg) translateZ(173.2px);

   -o-transform: rotateY(60deg) translateZ(173.2px);

   transform: rotateY(60deg) translateZ(173.2px);

}

.piece-3 {

   background: #006699;

   -webkit-transform: rotateY(120deg) translateZ(173.2px);

   -ms-transform: rotateY(120deg) translateZ(173.2px);

   -o-transform: rotateY(120deg) translateZ(173.2px);

   transform: rotateY(120deg) translateZ(173.2px);

}

.piece-4 {

   background: #009999;

   -webkit-transform: rotateY(180deg) translateZ(173.2px);

   -ms-transform: rotateY(180deg) translateZ(173.2px);

   -o-transform: rotateY(180deg) translateZ(173.2px);

   transform: rotateY(180deg) translateZ(173.2px);

}

.piece-5 {

   background: #FF0033;

   -webkit-transform: rotateY(240deg) translateZ(173.2px);

   -ms-transform: rotateY(240deg) translateZ(173.2px);

   -o-transform: rotateY(240deg) translateZ(173.2px);

   transform: rotateY(240deg) translateZ(173.2px);

}

.piece-6 {

   background: #FF6600;

   -webkit-transform: rotateY(300deg) translateZ(173.2px);

   -ms-transform: rotateY(300deg) translateZ(173.2px);

   -o-transform: rotateY(300deg) translateZ(173.2px);

   transform: rotateY(300deg) translateZ(173.2px);

}

是不是已经实现了走马灯了?

第五步:animation让3D动起来

要实现走马灯动,其实很简单,我们只要在piece-box上加上旋转动画就行了,5s完成动画,从0度旋转到360度

/*piece盒子*/

.piece-box {

   position: relative;

   width: 200px;

   height: 200px;

   margin: 300px auto;

   perspective-origin: 50% 50%;

   -webkit-transform-style: preserve-3d;

   -moz-transform-style: preserve-3d;

   -ms-transform-style: preserve-3d;

   transform-style: preserve-3d;

   animation: pieceRotate 5s;

   -moz-animation: pieceRotate







请到「今天看啥」查看全文