1. 程式人生 > >css3動畫效果:3 3D動畫

css3動畫效果:3 3D動畫

enter blog kit tag tez key container height gin

立方體旋轉動畫效果

css

  1         #container{
  2           width: 400px;
  3           height: 400px;
  4           -webkit-perspective:800;
  5           perspective:800;
  6           -webkit-perspective-origin:50% 225px;
  7           perspective-origin:50% 225px;         
  8 
  9         }
 10         #stage{
 11
width: 300px; 12 height:300px; 13 14 -webkit-transition: -webkit-transform 2s; 15 transition: transform 2s; 16 -webkit-transform-style: preserve-3d; 17 transform-style: preserve-3d; 18 19 } 20 #shape
{ 21 width: 200px; 22 height:200px; 23 position: relative; 24 top: 100px; 25 margin:0 auto; 26 transform-style: preserve-3d; 27 } 28 #shape{ 29 -webkit-animation: spin 8s infinite linear; 30 31 } 32
.plane{ 33 position: absolute; 34 width: 200px; 35 height:200px; 36 background: #c23c00; 37 border: 1px solid #000; 38 font-size: 100px; 39 color:#fff; 40 text-align: center; 41 line-height: 200px; 42 -webkit-transition: -webkit-transform 2s, opacity 2s; 43 transition: transform 2s, opacity 2s; 44 -webkit-backface-visibility: hidden; 45 backface-visibility: hidden; 46 } 47 #shape.backface .plane{ 48 -webkit-backface-visibility: visible; 49 backface-visibility: visible; 50 } 51 52 .cube>.one{ 53 opacity: 0.5 ; 54 -webkit-transform: scale3d(1.2, 1.2, 1.2) rotateX(90deg) translateZ(100px); 55 transform: scale3d(1.2, 1.2, 1.2) rotateX(90deg) translateZ(100px) 56 } 57 .cube>.two{ 58 opacity: 0.5 ; 59 -webkit-transform: scale3d(1.2, 1.2, 1.2) translateZ(100px); 60 transform: scale3d(1.2, 1.2, 1.2) translateZ(100px); 61 } 62 .cube>.three{ 63 opacity: 0.5 ; 64 -webkit-transform: scale3d(1.2, 1.2, 1.2) rotateY(90deg) translateZ(100px); 65 transform: scale3d(1.2, 1.2, 1.2) rotateY(90deg) translateZ(100px); 66 } 67 .cube > .four{ 68 opacity: 0.5 ; 69 -webkit-transform: scale3d(1.2, 1.2, 1.2) rotateY(180deg) translateZ(100px); 70 transform: scale3d(1.2, 1.2, 1.2) rotateY(180deg) translateZ(100px); 71 } 72 .cube > .five{ 73 opacity: 0.5 ; 74 -webkit-transform: scale3d(1.2, 1.2, 1.2) rotateY(-90deg) translateZ(100px); 75 transform: scale3d(1.2, 1.2, 1.2) rotateY(-90deg) translateZ(100px); 76 } 77 .cube > .six{ 78 opacity: 0.5 ; 79 -webkit-transform: scale3d(1.2, 1.2, 1.2) rotateX(-90deg) translateZ(100px); 80 transform: scale3d(1.2, 1.2, 1.2) rotateX(-90deg) translateZ(100px); 81 } 82 @-webkit-keyframes spin{ 83 0% { 84 -webkit-transform : rotateY(0); 85 transform : rotateY(0); 86 } 87 100% { 88 -webkit-transform : rotateY(-360deg); 89 transform : rotateY(-360deg); 90 } 91 } 92 @keyframes spin{ 93 0% { 94 -webkit-transform : rotateY(0); 95 transform : rotateY(0); 96 } 97 100% { 98 -webkit-transform : rotateY(-360deg); 99 transform : rotateY(-360deg); 100 } 101 }
perspective:視距
 transform-style: preserve-3d; 3d動畫必須,且放在父元素上
translateZ(100px) (100px是高度的一半)
動畫加在shape上(.cube的父級,則整體都會旋轉)


html

<div id="container" >
       <div id="stage">
         <div id="shape" class="cube backface">           
            <div class="plane one">1</div>
            <div class="plane two">2</div>
            <div class="plane three">3</div>
            <div class="plane four">4</div>
            <div class="plane five">5</div>
            <div class="plane six">6</div>
         </div>
       </div>
</div> 

css3動畫效果:3 3D動畫