div+css实现折叠的方块形成正方体动画效果代码
代码语言:html
所属分类:动画
代码描述:div+css实现折叠的方块形成正方体动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> *, *::before, *::after { padding: 0; margin: 0 auto; box-sizing: border-box; } body { background-color: #000; background-image: radial-gradient(circle, #000, #111 40em); min-height: 100vh; display: grid; place-items: center; perspective: 600px; overflow: hidden; } body *:not(:empty) { transform-style: preserve-3d; } .cube { position: relative; width: 10em; height: 10em; -webkit-animation: rotate 28.8s infinite linear; animation: rotate 28.8s infinite linear; } @-webkit-keyframes rotate { to { transform: rotateX(360deg) rotateY(360deg); } } @keyframes rotate { to { transform: rotateX(360deg) rotateY(360deg); } } .side { position: absolute; left: 0; top: 0; width: 100%; height: 100%; border: 1px solid #fff7; transform-origin: top left; -webkit-animation: sidesMove 24s var(--delay, 0s) ease-in-out infinite; animation: sidesMove 24s var(--delay, 0s) ease-in-out infinite; } @-webkit-keyframes sidesMove { 0%, 8.3% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em); } 16.6%, 25% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em) rotateX(270deg); } 33.3%, 41.6% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em) rotateX(270deg) rotateY(270deg); } 50%, 58.3% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em) rotateX(270deg) rotateY(270deg) rotateX(270deg); } 66.5%, 75% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em) rotateX(270deg) rotateY(270deg) rotateX(270deg) rotateY(270deg); } 83.3%, 91.4% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em) rotateX(270deg) rotateY(270deg) rotateX(270deg) rotateY(270deg) rotateX(270deg); } 100% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em) rotateX(270deg) rotateY(270deg) rotateX(270deg) rotateY(270deg) rotateX(270deg) rotateY(270deg); } } @keyframes sidesMove { 0%, 8.3% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em); } 16.6%, 25% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em) rotateX(270deg); } 33.3%, 41.6% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em) rotateX(270deg) rotateY(270deg); } 50%, 58.3% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em) rotateX(270deg) rotateY(270deg) rotateX(270deg); } 66.5%, 75% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em) rotateX(270deg) rotateY(270deg) rotateX(270deg) rotateY(270deg); } 83.3%, 91.4% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em) rotateX(270deg) rotateY(270deg) rotateX(270deg) rotateY(270deg) rotateX(270deg); } 100% { transform: rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translate3d(var(--txy, 0), var(--txy, 0), 5em) rotateX(270deg) rotateY(270deg) rotateX(270deg) rotateY(270deg) rotateX(270deg) rotateY(270deg); } } .side:nth-child(2n) { --ry: 180deg; --rz: -90deg; --txy: -100%; } .side:nth-child(2) { --delay: -3s; } .side:nth-child(3) { --delay: -6s; } .side:nth-child(4) { --delay: -9s; } .innerSqr { position: absolute; left: 50%; top: 50%; width: 50%; h.........完整代码请登录后点击上方下载按钮下载查看
网友评论0