css实现三维宇宙魔方变形动画效果代码
代码语言:html
所属分类:三维
代码描述:css实现三维宇宙魔方变形动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> .container { --c1:hsl(214deg 100% 50%); --c2:hsl(214deg 100% 30%); --c3:hsl(214deg 100% 15%); transform-style: preserve-3d; animation: s 1s infinite; } .maze { width: 200px; aspect-ratio: 1/1; display: grid; grid-template-columns: repeat(var(--n), 1fr); grid-auto-rows: 1fr; transform-style: preserve-3d; } .maze:first-child { transform: translate(-50%,100%) rotate(-90deg) rotateX(90deg) translate(0,-50%); } .maze:last-child { transform: translate(0,-50%)rotate(90deg) rotateY(90deg) translate(50%); } .maze > * { background: var(--c1); transform: translateZ(0px); transform-style: preserve-3d; --d: calc(var(--i) - var(--j)); animation: t 2s calc(var(--d) * 0.2s) infinite; } .maze:first-child *{ background: var(--c2); } .maze:last-child *{ background: var(--c3); } .maze > *::before, .maze > *::after { content: ""; bottom: 0; left: 0; position: absolute; } .maze > *::before { width: 40px; top: 0; transform-origin: left; background: var(--c2); transform: rotateY(90deg); } .maze:first-child > *::before { background: var(--c3); } .maze:last-child > *::before { background: var(--c1); } .maze > *::after { height: 40px; right: 0; transform-origin: bottom; background: var(--c3); transform: rotateX(90deg); } .maze:first-child > *::after { background: var(--c1); } .maze:last-child > *::after { background: var(--c2); } @keyframes t { 50% { transform: translateZ(10px); } } @keyframes s { 0%,70%,100% {transform: translate(0,-30%) rotateX(65deg) rotateZ(-45deg)} 75%,85%,95% {transform: translate(0,-32%) rotateX(65deg) rotateZ(-40deg)} 80%,90% {transform: translate(0,-31%) rotateX(70deg) rotateZ(-45deg)} } body { perspective: 70em; margin: 0; background: #000; min-height: 100vh; display: grid; place-content: center; transform-style:preserve-3d; } </style> </head> <body > <div class="container" style="--n: 10"> <div class="maze"> <div style="--i: 0;--j: 0"></div> <div style="--i: 0;--j: 1"></div> <div style="--i: 0;--j: 2"></div> <div style="--i: 0;--j: 3"></div> <div style="--i: 0;--j: 4"></div> <div style="--i: 0;--j: 5"></div> <div style="--i: 0;--j: 6"></div> <div style="--i: 0;--j: 7"></div> <div style="--i: 0;--j: 8"></div> <div style="--i: 0;--j: 9"></div> <div style="--i: 1;--j: 0"></div> <div style="--i: 1;--j: 1"></div> <div style="--i: 1;--j: 2"></div> <div style="--i: 1;--j: 3"></div> <div style="--i: 1;--j: 4"></div> <div style="--i: 1;--j: 5"></div> <div style="--i: 1;--j: 6"></div> <div style="--i: 1;--j: 7"></div> <div style="--i: 1;--j: 8"></div> <div style="--i: 1;--j: 9"></div> <div style="--i: 2;--j: 0"></div> <div style="--i: 2;--j: 1"></div> <div style="--i: 2;--j: 2"></div> <div style="--i: 2;--j: 3"></div> <div style="--i: 2;--j: 4"></div> <div style="--i: 2;--j: 5"></div> <div style="--i: 2;--j: 6"></div> <div style="--i: 2;--j: 7"></div> <div style="--i: 2;--j: 8"></div> <div style="--i: 2;--j: 9"></div> <div style="--i: 3;--j: 0"></div> <div style="--i: 3;--j: 1"></div> <div style="--i: 3;--j: 2"></div> <div style="--i: 3;--j: 3"></div> <div style="--i: 3;--j: 4"></div> <div style="--i: 3;--j: 5"></div> <div style="--i: 3;--j: 6"></div> <div style="--i: 3;--j: 7"></div> <div style="--i: 3;--j: 8"></div> <div style="--i: 3;--j: 9"></div> <div style="--i: 4;--j: 0"></div> <div style="--i: 4;--j: 1"></div> <div style="--i: 4;--j: 2"></div> <div style="--i: 4;--j: 3"></div> <div style="--i: 4;--j: 4"></div> <div style="--i: 4;--j: 5"></div> <div style="--i: 4;--j: 6"></div> <div style="--i: 4;--j: 7"></div> <div style="--i: 4;--j: 8"></div> <div style="--i: 4;--j: 9"></div> <div style="--i: 5;--j: 0"></div> <div style="--i: 5;--j: 1"></div> <div style="--i: 5;--j: 2"></div> <div style="--i: 5;--j: 3"></div> <div style="--i: 5;--j: 4"></div> <div style="--i: 5;--j: 5"></div> <div style="--i: 5;--j: 6"></div> <div style="--i: 5;--j: 7"></div> <div style="--i: 5;--j: 8"></div> <div style="--i: 5;--j: 9"></div> <div style="--i: 6;--j: 0"></div> <div style="--i: 6;--j: 1"></div> <div style="--i: 6;--j: 2"></div> <div style="--i: 6;--j: 3"></div> <div style="--i: 6;--j: 4"></div> <div style="--i: 6;--j: 5"></div> <div style="--i: 6;--j: 6"></div> <div style="--i: 6;--j: 7"></div> <div style="--i: 6;--j: 8"></div> <div style="--i: 6;--j: 9"></div> <div style="--i: 7;--j: 0"></div> <div style="--i: 7;--j: 1"></div> <div style="--i: 7;--j: 2"></div> <div style="--i: 7;--j: 3"></div> <div style="--i: 7;--j: 4"></div> <div style="--i: 7;--j: 5"></div> <div style="--i: 7;--j: 6"></div> <div style="--i: 7;--j: 7"></div> <div style="--i: 7;--j: 8"></div> <div style="--i: 7;--j: 9"></div> <div style="--i: 8;--j: 0"></div> <div style="--i: 8;--j: 1"></div> <div style="--i: 8;--j: 2"></div> <div style="--i: 8;--j: 3"></div> <div style="--i: 8;--j: 4"></div> <div style="--i: 8;--j: 5"></div> <div style="--i: 8;--j: 6"></div> <div style="--i: 8;--j: 7"></div> <div style="--i: 8;--j: 8"></div> <div style="--i: 8;--j: 9"></div> <div style="--i: 9;--j: 0"></div> <div style="--i: 9;--j: 1"></div> <div style="--i: 9;--j: 2"></div> <div style="--i: 9;--j: 3"></div> <div style="--i: 9;--j: 4"></div> <div style="--i: 9;--j: 5"></div> <div style="--i: 9;--j: 6"></div> <div style="--i: 9;--j: 7"></div> <div style="--i: 9;--j: 8"></div> <div style="--i: 9;--j: 9"></div> </div> <div class="maze"> <div style="--i: 0;--j: 0"></div> <div style="--i: 0;--j: 1"></div> <div style="--i: 0;--j: 2"></div> <div style="--i: 0;--j: 3"></div> <div style="--i: 0;--j: 4"></div> <div style="--i: 0;--j: 5"></div> <div style="--i: 0;--j: 6"></div> <div style="--i: 0;--j: 7"></div> <div style="--i: 0;--j: 8"></div> <div style="--i: 0;--j: 9"></div> <div style="--i: 1;--j: 0"></div> <div style="--i: 1;--j: 1"></div> <div style="--i: 1;--j: 2"></div> <div style="--i: 1;--j: 3"></div> <div style="--i: 1;--j: 4"></div> <div style="--i: 1;--j: 5"></div> <div style="--i: 1;--j: 6"></div> <div style="--i: 1;--j: 7"></div> <div style="--i: 1;--j: 8"></div> <div style="--i: 1;--j: 9"></div> <div style="--i: 2;--j: 0"></div> <div style="--i: 2;--j: 1"></div> <div style="--i: 2;--j: 2"></div> <div style="--i: 2;--j: 3"></div> <div style="--i: 2;--j: 4"></div> <div style="--i: 2;--j: 5"></div> <div style="--i: 2;--j: 6"></div> <div style="--i: 2;--j: 7"></div> <div style="--i: 2;--j: 8"></div> <div style="--i: 2;--j: 9"></div> <div style="--i: 3;--j: 0"></div> <div style="--i: 3;--j: 1"></div> &l.........完整代码请登录后点击上方下载按钮下载查看
网友评论0