css实现三维立方体堆积形成的彭罗斯三角错觉效果代码
代码语言:html
所属分类:三维
代码描述:css实现三维立方体堆积形成的彭罗斯三角错觉效果代码,鼠标放上去切换一个角度看看
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> * { transform-style: preserve-3d; } body { margin: 0; height: 100vh; background: radial-gradient(circle at 50% 25%, #36546c, #02111c); overflow: hidden; justify-content: center; align-items: center; display: flex; flex-wrap: wrap; align-content: center; --grad: linear-gradient(0deg, #0002, #fff0); } .content { width: 52vmin; height: 38vmin; margin: 0 auto; position: absolute; transition: all 1s ease 0s; transform: rotateX(-35.5deg) rotateY(45deg) rotateZ(0deg); animation: move 3s ease 0.5s; } .content:hover { transform: rotateX(10deg) rotateY(-10deg) rotateZ(0deg); } @keyframes move { 50% {transform: rotateX(10deg) rotateY(-10deg) rotateZ(0deg);} } .cube { --width: 10; --height: 10; --depth: 10; --hue: 200; --sat: 40%; height: calc(var(--height) * 1vmin); width: calc(var(--width) * 1vmin); position: absolute; right: 0; top: 0; } .side { position: absolute; top: 50%; left: 50%; height: 100%; width: 100%; box-sizing: border-box; border-radius: 2px; } .side:nth-of-type(1) { transform: translate3d(-50%, -50%, calc(var(--depth) * 0.5vmin)); background: var(--grad), hsl(var(--hue), var(--sat), 40%); } .side:nth-of-type(2) { transform: translate3d(-50%, -50%, calc(var(--depth) * -0.5vmin)) rotateY(180deg); background: var(--grad), hsl(var(--hue), var(--sat), 35%); } .side:nth-of-type(3) { width: calc(var(--depth) * 1vmin); transform: translate(-50%, -50%) rotateY(90deg) translate3d(0, 0, calc(var(--width) * 0.5vmin)); background: var(--grad), hsl(var(--hue), var(--sat), 35%); } .side:nth-of-type(4) { width: calc(var(--depth) * 1vmin); transform: translate(-50%, -50%) rotateY(-90deg) translate3d(0, 0, calc(var(--width) * 0.5vmin)); background: var(--grad), hsl(var(--hue), var(--sat), 60%); } .side:nth-of-type(5) { height: calc(var(--depth) * 1vmin); transform: translate(-50%, -50%) rotateX(90deg) translate3d(0, 0, calc(var(--height) * 0.5vmin)); background: var(--grad), hsl(var(--hue), var(--sat), 80%); } .side:nth-of-type(6) { height: calc(var(--depth) * 1vmin); transform: translate(-50%, -50%) rotateX(-90deg) translate3d(0, 0, calc(var(--height) * 0.5vmin)); background: var(--grad), hsl(var(--hue), var(--sat), 25%); } /*** cube positions ***/ .cube:nth-child(1) { top: 14vmin } .cube:nth-child(.........完整代码请登录后点击上方下载按钮下载查看
网友评论0