最近总是纠结去哪里吃饭,所以就想着做了一个色子,也算是朝花夕拾了,最后做出来的是一个旋转的立方体,整体美感还好:实现了永久旋转,悬浮停止和突出及一个分散的效果:以下是代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>立方体旋转</title> <style type="text/css"> *{ margin:0 auto; padding:0; } @keyframes rotate{ 0%{ transform:rotateX(0deg) rotateY(0deg); } 100%{ transform:rotateX(360deg) rotateY(360deg); } } html{ height:100%; } .wrap{ width: 200px; height: 200px; margin-top:200px; perspective: 1000px; } .cube{ width:200px; height:200px; position:relative; color:#fff; font-size:36px; text-align:center; line-height:200px; transform-style:preserve-3d; transform:rotateX(-30deg) rotateY(-70deg); animation:rotate 20s infinite linear;
} .cube > div{ width:100%; height:100%; border:1px solid #fff; position:absolute; background:rgba(0,0,0,.5); opacity:.5; transition:transform 0.5s ease-out; } .cube > div >img{ width: 200px; height: 200px; } .cube .out-front{ transform: translateZ(100px); } .cube .out-back{ transform: translateZ(-100px) rotateY(180deg); } .cube .out-left{ transform: translateX(-100px) rotateY(-90deg); } .cube .out-right{ transform: translateX(100px) rotateY(90deg); } .cube .out-top{ transform: translateY(-100px) rotateX(90deg); } .cube .out-bottom{ transform: translateY(100px) rotateX(-90deg); } .cube .in-front{ transform: translateZ(50px); } .cube .in-back{ transform: translateZ(-50px) rotateY(180deg); } .cube .in-left{ transform: translateX(-50px) rotateY(-90deg); } .cube .in-right{ transform: translateX(50px) rotateY(90deg); } .cube .in-top{ transform: translateY(-50px) rotateX(90deg); } .cube .in-bottom{ transform: translateY(50px) rotateX(-90deg); } .wrap:hover .out-front{ transform: translateZ(200px); } .wrap:hover .out-back{ transform: translateZ(-200px) rotateY(180deg); } .wrap:hover .out-left{ transform: translateX(-200px) rotateY(-90deg); } .wrap:hover .out-right{ transform: translateX(200px) rotateY(90deg); } .wrap:hover .out-top{ transform: translateY(-200px) rotateX(90deg); } .wrap:hover .out-bottom{ transform: translateY(200px) rotateX(-90deg); } </style> </head> <body> <div class="wrap"> <div class="cube cubeX"> <div class="out-front"><img src="./img/1.jpg" ></div> <div class="out-back">kim</div> <div class="out-left"><img src="./img/3.jpg" ></div> <div class="out-right"><img src="./img/4.jpg" ></div> <div class="out-top"><img src="./img/5.jpg" ></div> <div class="out-bottom"><img src="./img/6.jpg" ></div> </div> </div> </body> <script type="text/javascript" src="jquery-1.8.1.js"></script> <script> $(".cube > div").mouseover(function(){ $(".cube").css({"animation-play-state":"","animation-duration":"7s"}); $(this).css("opacity",1); }).mouseout(function(){ $(".cube").css({"animation-play-state":"","animation-duration":"20s"}); $(this).css("opacity",.5); }) </script> </html>
以上利用了transform属性和旋转的属性,实现了立方体的拼接,旋转。整体代码巨简单,jq因为是本地引入,具体路径与版本需看自己的情况。