* { margin:0px; padding:0px; } body { background:#666; width:100%; height:100%; overflow:hidden; } h1 { width:100%; text-align:center; color:white; font-size:50px; } .an { width:50px; height:50px; margin:auto; margin-top:200px; perspective:800px; position:relative; transform-style:preserve-3d; } .an-3d { position:absolute; top:0px; left:0px; width:100%; height:100%; transform-style:preserve-3d; animation:x 5s linear infinite; } .an-3d:nth-of-type(1)>div { width:50px; height:50px; position:absolute; top:0px; left:0px; transition:2s; opacity:0.3; box-shadow:0px 0px 10px 5px white; background:linear-gradient(pink,blue); } .an-3d:nth-of-type(2)>div { width:50px; height:50px; position:absolute; top:0px; left:0px; transition:2s; opacity:0.3; border-radius:50%; box-shadow:0px 0px 10px 5px white; background:radial-gradient(rgba(0,255,255,0) 10%,rgba(0,255,255,1) 65%); } .an-3d:nth-of-type(3)>div { width:200px; height:200px; position:absolute; top:-75px; left:-75px; box-shadow:0px 0px 10px 5px white; box-sizing:border-box; transition:2s; opacity:0.5; border-radius:20px; border:10px solid black; background:rgba(0,0,0,0.2); } .an-3d:nth-of-type(4)>div { width:100px; height:100px; position:absolute; top:-50px; box-sizing:border-box; left:-50px; transition:2s; opacity:0.5; background:radial-gradient(rgba(0,255,255,0) 10%,rgba(0,255,255,1) 65%); border-radius:50%; box-shadow:0px 0px 10px 5px white; } .an-3d:nth-of-type(1)>div:nth-of-type(1) { transform:rotate(0deg) translateZ(25px); } .an-3d:nth-of-type(1)>div:nth-of-type(2) { transform:rotateX(180deg) translateZ(25px); } .an-3d:nth-of-type(1)>div:nth-of-type(3) { transform:rotateY(-90deg) translateZ(25px); } .an-3d:nth-of-type(1)>div:nth-of-type(4) { transform:rotateY(90deg) translateZ(25px); } .an-3d:nth-of-type(1)>div:nth-of-type(5) { transform:rotateX(90deg) translateZ(25px); } .an-3d:nth-of-type(1)>div:nth-of-type(6) { transform:rotateX(-90deg) translateZ(25px); } /***/ .an-3d:nth-of-type(2)>div:nth-of-type(1) { transform:rotate(0deg) translateZ(75px); } .an-3d:nth-of-type(2)>div:nth-of-type(2) { transform:rotateX(180deg) translateZ(75px); } .an-3d:nth-of-type(2)>div:nth-of-type(3) { transform:rotateY(-90deg) translateZ(75px); } .an-3d:nth-of-type(2)>div:nth-of-type(4) { transform:rotateY(90deg) translateZ(75px); } .an-3d:nth-of-type(2)>div:nth-of-type(5) { transform:rotateX(90deg) translateZ(75px); } .an-3d:nth-of-type(2)>div:nth-of-type(6) { transform:rotateX(-90deg) translateZ(75px); } /***/ .an-3d:nth-of-type(3)>div:nth-of-type(1) { transform:rotate(0deg) translateZ(100px); } .an-3d:nth-of-type(3)>div:nth-of-type(2) { transform:rotateX(180deg) translateZ(100px); } .an-3d:nth-of-type(3)>div:nth-of-type(3) { transform:rotateY(-90deg) translateZ(100px); } .an-3d:nth-of-type(3)>div:nth-of-type(4) { transform:rotateY(90deg) translateZ(100px); } .an-3d:nth-of-type(3)>div:nth-of-type(5) { transform:rotateX(90deg) translateZ(100px); } .an-3d:nth-of-type(3)>div:nth-of-type(6) { transform:rotateX(-90deg) translateZ(100px); } /***/ .an-3d:nth-of-type(4)>div:nth-of-type(1) { transform:rotate(0deg) translateZ(200px); } .an-3d:nth-of-type(4)>div:nth-of-type(2) { transform:rotateX(180deg) translateZ(200px); } .an-3d:nth-of-type(4)>div:nth-of-type(3) { transform:rotateY(-90deg) translateZ(200px); } .an-3d:nth-of-type(4)>div:nth-of-type(4) { transform:rotateY(90deg) translateZ(200px); } .an-3d:nth-of-type(4)>div:nth-of-type(5) { transform:rotateX(90deg) translateZ(200px); } .an-3d:nth-of-type(4)>div:nth-of-type(6) { transform:rotateX(-90deg) translateZ(200px); } /***/ .an:hover .an-3d:nth-of-type(3)>div:nth-of-type(1) { transform:rotate(0deg) translateZ(250px) scale(1.5); } .an:hover .an-3d:nth-of-type(3)>div:nth-of-type(2) { transform:rotateX(180deg) translateZ(250px) scale(1.5); } .an:hover .an-3d:nth-of-type(3)>div:nth-of-type(3) { transform:rotateY(-90deg) translateZ(250px) scale(1.5); } .an:hover .an-3d:nth-of-type(3)>div:nth-of-type(4) { transform:rotateY(90deg) translateZ(250px) scale(1.5); } .an:hover .an-3d:nth-of-type(3)>div:nth-of-type(5) { transform:rotateX(90deg) translateZ(250px) scale(1.5); } .an:hover .an-3d:nth-of-type(3)>div:nth-of-type(6) { transform:rotateX(-90deg) translateZ(250px) scale(1.5); } @keyframes x { from { transform:rotate(0deg) rotateX(0deg) rotateY(0deg); } to { transform:rotate(360deg) rotateX(360deg) rotateY(360deg) } }
纯css实现3d效果