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>

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。