CSS3实现正方形立方体旋转
2017-04-24 16:05
661 查看
直接上代码
html结构:
<div class="box">
<div class="right"></div>
<div class="left"></div>
<div class="top"></div>
<div class="bottom"></div>
<div class="front"></div>
<div class="back"></div>
<section class="right1"></section>
<section class="left1"></section>
<section class="top1"></section>
<section class="bottom1"></section>
<section class="front1"></section>
<section class="back1"></section>
</div>
css样式:
*{
padding: 0;
margin: 0;
}
.box{
position: relative;
height: 400px;
width: 400px;
margin: 150px auto;
transform-style: preserve-3d;
animation: rotate 20s infinite linear;
transition: all 1s;
}
.box div {
width: 100%;
height: 100%;
position: absolute;
opacity: 0.9;
top: 0;
left: 0;
transition: all 1s;
}
.box section {
width: 50%;
height: 50%;
position: absolute;
/*opacity: 0.9;*/
background-color: black;
top:25%;
left:25%;
}
.left {
background-color: red;
transform: rotateY(90deg) translateZ(200px);
}
.right {
background-color: blue;
transform: rotateY(90deg) translateZ(-200px);
}
.top {
background-color: yellow;
transform: rotateX(90deg) translateZ(200px);
}
.bottom {
background-color: darkmagenta;
transform: rotateX(90deg) translateZ(-200px);
}
.back {
background-color: green;
transform:translateZ(-200px);
}
.front {
background-color: aqua;
transform:translateZ(200px);
}
.left1 {
/*background-color: red;*/
transform: rotateY(90deg) translateZ(100px);
}
.right1 {
/*background-color: blue;*/
transform: rotateY(90deg) translateZ(-100px);
}
.top1 {
/*background-color: yellow;*/
transform: rotateX(90deg) translateZ(100px);
}
.bottom1 {
/*background-color: darkmagenta;*/
transform: rotateX(90deg) translateZ(-100px);
}
.back1 {
/*background-color: green;*/
transform:translateZ(-100px);
}
.front1 {
/*background-color: aqua;*/
transform:translateZ(100px);
}
.box:hover .left{
transform: rotateY(90deg) translateZ(300px) rotateZ(90deg);
}
.box:hover .right{
transform: rotateY(90deg) translateZ(-300px) rotateZ(90deg);
}
.box:hover .top{
transform: rotateX(90deg) translateZ(300px) rotateZ(90deg);
}
.box:hover .bottom{
transform: rotateX(90deg) translateZ(-300px) rotateZ(90deg);
}
.box:hover .back{
transform:translateZ(-300px) rotateZ(90deg);
}
.box:hover .front{
transform:translateZ(300px) rotateZ(90deg);
}
@keyframes rotate {
from {
transform: rotateX(0deg) rotateY(0deg);
}
to {
transform: rotateX(360deg) rotateY(360deg);
}
}
html结构:
<div class="box">
<div class="right"></div>
<div class="left"></div>
<div class="top"></div>
<div class="bottom"></div>
<div class="front"></div>
<div class="back"></div>
<section class="right1"></section>
<section class="left1"></section>
<section class="top1"></section>
<section class="bottom1"></section>
<section class="front1"></section>
<section class="back1"></section>
</div>
css样式:
*{
padding: 0;
margin: 0;
}
.box{
position: relative;
height: 400px;
width: 400px;
margin: 150px auto;
transform-style: preserve-3d;
animation: rotate 20s infinite linear;
transition: all 1s;
}
.box div {
width: 100%;
height: 100%;
position: absolute;
opacity: 0.9;
top: 0;
left: 0;
transition: all 1s;
}
.box section {
width: 50%;
height: 50%;
position: absolute;
/*opacity: 0.9;*/
background-color: black;
top:25%;
left:25%;
}
.left {
background-color: red;
transform: rotateY(90deg) translateZ(200px);
}
.right {
background-color: blue;
transform: rotateY(90deg) translateZ(-200px);
}
.top {
background-color: yellow;
transform: rotateX(90deg) translateZ(200px);
}
.bottom {
background-color: darkmagenta;
transform: rotateX(90deg) translateZ(-200px);
}
.back {
background-color: green;
transform:translateZ(-200px);
}
.front {
background-color: aqua;
transform:translateZ(200px);
}
.left1 {
/*background-color: red;*/
transform: rotateY(90deg) translateZ(100px);
}
.right1 {
/*background-color: blue;*/
transform: rotateY(90deg) translateZ(-100px);
}
.top1 {
/*background-color: yellow;*/
transform: rotateX(90deg) translateZ(100px);
}
.bottom1 {
/*background-color: darkmagenta;*/
transform: rotateX(90deg) translateZ(-100px);
}
.back1 {
/*background-color: green;*/
transform:translateZ(-100px);
}
.front1 {
/*background-color: aqua;*/
transform:translateZ(100px);
}
.box:hover .left{
transform: rotateY(90deg) translateZ(300px) rotateZ(90deg);
}
.box:hover .right{
transform: rotateY(90deg) translateZ(-300px) rotateZ(90deg);
}
.box:hover .top{
transform: rotateX(90deg) translateZ(300px) rotateZ(90deg);
}
.box:hover .bottom{
transform: rotateX(90deg) translateZ(-300px) rotateZ(90deg);
}
.box:hover .back{
transform:translateZ(-300px) rotateZ(90deg);
}
.box:hover .front{
transform:translateZ(300px) rotateZ(90deg);
}
@keyframes rotate {
from {
transform: rotateX(0deg) rotateY(0deg);
}
to {
transform: rotateX(360deg) rotateY(360deg);
}
}
相关文章推荐
- CSS3景深、三维变换属性及旋转三维立方体的实现
- 纯css3实现立方体旋转效果
- 使用css3 实现旋转的立方体
- CSS3景深、三维变换属性及旋转三维立方体的实现
- css3实现旋转的立方体
- CATransform3D 矩阵变换之立方体旋转实现细节
- 元素中心旋转在CSS3和IE滤镜中的实现
- CATransform3D 矩阵变换之立方体旋转实现细节
- 利用Micro3D和JSR-184使用相同代码实现旋转立方体的效果
- [OpenGL]课后案例11:用虚拟跟踪球实现立方体旋转程序
- CSS3----实现光芒旋转头像动画
- MFC下用矩阵实现图形学之立方体平移、比例、旋转、投影变换算法
- CATransform3D 矩阵变换之立方体旋转实现细节 .
- css3-rotate实现超炫环形旋转特效
- 运用css3 实现骰子3d旋转效果
- CATransform3D 矩阵变换之立方体旋转实现细节
- 巧用css3轻松实现箭头上下旋转
- [HTML5-SVG]使用raphaeljs:代替css3实现qq空间关闭按钮旋转特效
- CATransform3D 矩阵变换之立方体旋转实现细节
- MFC下实现图形学之立方体平移、比例、旋转、投影变换算法