css3 3d旋转动画

时间:2023-03-09 07:11:16
css3 3d旋转动画

css3 3d旋转动画


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>css3 3d动画 keyframes</title>
</head> <body> <style>/*************** ANIMATIONS ***************/
@-webkit-keyframes spin {
from { -webkit-transform: rotateY(0); }
to { -webkit-transform: rotateY(360deg); }
} @-ms-keyframes spin {
from { ms-transform: rotateY(0); }
to { ms-transform: rotateY(360deg); }
} @keyframes spin {
from { transform: rotateY(0); }
to { transform: rotateY(360deg); }
} @-webkit-keyframes spin-vertical {
from { -webkit-transform: rotateX(0); }
to { -webkit-transform: rotateX(-360deg); }
} @-ms-keyframes spin-vertical {
from { ms-transform: rotateX(0); }
to { ms-transform: rotateX(-360deg); }
} @keyframes spin-vertical {
from { transform: rotateX(0); }
to { transform: rotateX(-360deg); }
} /*************** STANDARD CUBE ***************/
.cube-wrap {
-webkit-perspective: 800px;
-webkit-perspective-origin: 50% 100px; -moz-perspective: 800px;
-moz-perspective-origin: 50% 100px; -ms-perspective: 800px;
-ms-perspective-origin: 50% 100px; perspective: 800px;
perspective-origin: 50% 100px;
} .cube {
position: relative;
width: 200px;
margin: 0 auto; -webkit-transform-style: preserve-3d;
-webkit-animation: spin 5s infinite linear; -moz-transform-style: preserve-3d;
-moz-animation: spin 5s infinite linear; -ms-transform-style: preserve-3d;
-ms-animation: spin 5s infinite linear; transform-style: preserve-3d;
animation: spin 5s infinite linear;
} .cube div {
position: absolute;
width: 200px;
height: 200px;
background: rgba(255,255,255,0.1);
box-shadow: inset 0 0 30px rgba(125,125,125,0.8);
font-size: 20px;
text-align: center;
line-height: 200px;
color: rgba(0,0,0,0.5);
font-family: sans-serif;
text-transform: uppercase;
} /*************** DEPTH CUBE ***************/
.depth div.back-pane {
-webkit-transform: translateZ(-100px) rotateY(180deg);
-moz-transform: translateZ(-100px) rotateY(180deg);
-ms-transform: translateZ(-100px) rotateY(180deg); transform: translateZ(-100px) rotateY(180deg);
}
.depth div.right-pane {
-webkit-transform:rotateY(-270deg) translateX(100px);
-webkit-transform-origin: top right; -moz-transform:rotateY(-270deg) translateX(100px);
-moz-transform-origin: top right; -ms-transform:rotateY(-270deg) translateX(100px);
-ms-transform-origin: top right; transform:rotateY(-270deg) translateX(100px);
transform-origin: top right;
}
.depth div.left-pane {
-webkit-transform:rotateY(270deg) translateX(-100px);
-webkit-transform-origin: center left; -moz-transform:rotateY(270deg) translateX(-100px);
-moz-transform-origin: center left; -ms-transform:rotateY(270deg) translateX(-100px);
-ms-transform-origin: center left; transform:rotateY(270deg) translateX(-100px);
transform-origin: center left;
}
.depth div.top-pane {
-webkit-transform:rotateX(-90deg) translateY(-100px);
-webkit-transform-origin: top center; -moz-transform:rotateX(-90deg) translateY(-100px);
-moz-transform-origin: top center; -ms-transform:rotateX(-90deg) translateY(-100px);
-ms-transform-origin: top center; transform:rotateX(-90deg) translateY(-100px);
transform-origin: top center;
}
.depth div.bottom-pane {
-webkit-transform:rotateX(90deg) translateY(100px);
-webkit-transform-origin: bottom center; -moz-transform:rotateX(90deg) translateY(100px);
-moz-transform-origin: bottom center; -ms-transform:rotateX(90deg) translateY(100px);
-ms-transform-origin: bottom center; transform:rotateX(90deg) translateY(100px);
transform-origin: bottom center;
}
.depth div.front-pane {
-webkit-transform: translateZ(100px);
-moz-transform: translateZ(100px);
-ms-transform: translateZ(100px); transform: translateZ(100px);
} /*************** VERTICAL SPINNING CUBE ***************/
.cube-wrap.vertical .cube {
-webkit-transform-origin: 0 100px;
-moz-transform-origin: 0 100px;
-ms-transform-origin: 0 100px;
transform-origin: 0 100px; -webkit-animation: spin-vertical 5s infinite linear;
-moz-animation: spin-vertical 5s infinite linear;
-ms-animation: spin-vertical 5s infinite linear;
animation: spin-vertical 5s infinite linear;
} .cube-wrap.vertical .depth div.top-pane {
-webkit-transform:rotateX(-270deg) translateY(-100px);
-moz-transform:rotateX(-270deg) translateY(-100px);
-ms-transform:rotateX(-270deg) translateY(-100px); transform:rotateX(-270deg) translateY(-100px);
} .cube-wrap.vertical .depth div.back-pane {
-webkit-transform: translateZ(-100px) rotateX(180deg);
-moz-transform: translateZ(-100px) rotateX(180deg);
-ms-transform: translateZ(-100px) rotateX(180deg); transform: translateZ(-100px) rotateX(180deg);
} .cube-wrap.vertical .depth div.bottom-pane {
-webkit-transform: rotateX(-90deg) translateY(100px);
-moz-transform: rotateX(-90deg) translateY(100px);
-ms-transform: rotateX(-90deg) translateY(100px);
transform: rotateX(-90deg) translateY(100px);
} /*************** FLAT SPINNING CUBE ***************/
.cube-wrap.flat {
-webkit-perspective: none;
-webkit-perspective-origin: 0 0; -moz-perspective: none;
-moz-perspective-origin: 0 0; -ms-perspective: none;
-ms-perspective-origin: 0 0; perspective: none;
perspective-origin: 0 0;
}</style> <div style="height: 300px; margin-top: 45px; float:left; width:400px;">
<div class="cube-wrap">
<div class="cube depth">
<div class="front-pane">前</div>
<div class="back-pane">后</div>
<div class="top-pane">上</div>
<div class="bottom-pane">bottom</div>
<div class="left-pane">左</div>
<div class="right-pane">右</div>
</div>
</div>
</div> <div style="height: 300px; margin-top: 60px;float:left;width:400px;">
<div class="cube-wrap vertical">
<div class="cube depth">
<div class="front-pane">前</div>
<div class="back-pane">后</div>
<div class="top-pane">上</div>
<div class="bottom-pane">bottom</div>
<div class="left-pane">左</div>
<div class="right-pane">右</div>
</div>
</div>
</div> <div style="height: 300px; margin-top: 60px;float:left;width:400px;">
<div class="cube-wrap flat">
<div class="cube depth">
<div class="front-pane">前</div>
<div class="back-pane">后</div>
<div class="top-pane">上</div>
<div class="bottom-pane">bottom</div>
<div class="left-pane">左</div>
<div class="right-pane">右</div>
</div>
</div>
</div> </body>
</html>