如下图的动画效果一般只能3d软件才能实现,今天我们就用css实现一个立方体旋转动画的效果
<html> <head> <meta charset="UTF-8"> <link rel="apple-touch-icon" type="image/png" href="https://cpwebassets.codepen.io/assets/favicon/apple-touch-icon-5ae1a0698dcc2402e9712f7d01ed509a57814f994c660df9f7a952f3060705ee.png"> <meta name="apple-mobile-web-app-title" content="CodePen"> <link rel="shortcut icon" type="image/x-icon" href="https://cpwebassets.codepen.io/assets/favicon/favicon-aec34940fbc1a6e787974dcd360f2c6b63348d4b1f4e06c77743096d55480f33.ico"> <link rel="mask-icon" type="image/x-icon" href="https://cpwebassets.codepen.io/assets/favicon/logo-pin-8f3771b1072e3c38bd662872f6b673a722f4b3ca2421637d5596661b4e2132cc.svg" color="#111"> <title>css实现立方体旋转动画效果www.woaidaogu.com</title> <style> body, html { width: 100%; height: 100%; background: #2b3a42; display: flex; } .demo-cube { margin: auto; } .perspective { transform-style: preserve-3d; perspective: 200px; transform: rotateX(10deg); } ul { padding: 0; list-style: none; } .demo-cube { position: relative; width: 100%; height: 200px; } .demo-cube .cube-inner { display: block; position: absolute; top: 50%; left: 50%; margin: -25px 0 0 -25px; transform-style: preserve-3d; transform-origin: 25px 25px; transform: rotateX(-33.5deg) rotateY(45deg); -webkit-animation: fastspin 6s ease-in-out infinite 2s; animation: fastspin 6s ease-in-out infinite 2s; } .demo-cube .cube-inner li { position: absolute; display: block; width: 50px; height: 50px; background: #175d96; border: 1px solid #fff; } .demo-cube .cube-inner .top { transform: rotateX(90deg) translateZ(25px); } .demo-cube .cube-inner .bottom { transform: rotateX(-90deg) translateZ(25px); } .demo-cube .cube-inner .front { transform: translateZ(25px); } .demo-cube .cube-inner .back { transform: rotateX(-180deg) translateZ(25px); } .demo-cube .cube-inner .left { transform: rotateY(-90deg) translateZ(25px); } .demo-cube .cube-inner .right { transform: rotateY(90deg) translateZ(25px); } .demo-cube .cube { display: block; position: absolute; top: 50%; left: 50%; margin: -50px 0 0 -50px; transform-style: preserve-3d; transform-origin: 50px 50px; transform: rotateX(-33.5deg) rotateY(45deg); -webkit-animation: slowspin 6s ease-in-out infinite 2s; animation: slowspin 6s ease-in-out infinite 2s; } .demo-cube .cube li { position: absolute; display: block; width: 100px; height: 100px; background: rgba(141, 214, 249, 0.5); border: 1px solid #fff; } .demo-cube .cube .top { transform: rotateX(90deg) translateZ(50px); } .demo-cube .cube .bottom { transform: rotateX(-90deg) translateZ(50px); } .demo-cube .cube .front { transform: translateZ(50px); } .demo-cube .cube .back { transform: rotateX(-180deg) translateZ(50px); } .demo-cube .cube .left { transform: rotateY(-90deg) translateZ(50px); } .demo-cube .cube .right { transform: rotateY(90deg) translateZ(50px); } @-webkit-keyframes fastspin { 0% { transform: rotateX(-33.5deg) rotateY(45deg); } 40%, to { transform: rotateX(-33.5deg) rotateY(-315deg); } } @keyframes fastspin { 0% { transform: rotateX(-33.5deg) rotateY(45deg); } 40%, to { transform: rotateX(-33.5deg) rotateY(-315deg); } } @-webkit-keyframes slowspin { 0% { transform: rotateX(-33.5deg) rotateY(45deg); } 40%, to { transform: rotateX(-33.5deg) rotateY(315deg); } } @keyframes slowspin { 0% { transform: rotateX(-33.5deg) rotateY(45deg); } 40%, to { transform: rotateX(-33.5deg) rotateY(315deg); } } </style> <script> window.console = window.console || function (t) { }; </script> <script> if (document.location.search.match(/type=embed/gi)) { window.parent.postMessage("resize", "*"); } </script> </head> <body translate="no"> <div> <ul> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> <ul> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> </div> <div class="demo-cube perspective"> <ul> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> <ul> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> </div> <div id="xl_chrome_ext_{4DB361DE-01F7-4376-B494-639E489D19ED}" style="display: none;"> <div></div> <a id="xl_chrome_ext_download" href="javascript:;">下载视频</a> <a id="xl_chrome_ext_close" href="javascript:;"></a> </div> </body> </html>
通过以上内容我们知道了css如何实现立方体旋转动画效果?感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!