three+css实现一个三维排队直升机旋转动画效果代码
代码语言:html
所属分类:三维
代码描述:three+css实现一个三维排队直升机旋转动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> .cuboid { width: 100%; height: 100%; position: relative; } .cuboid__side:nth-of-type(1) { height: calc(var(--thickness) * 1vmin); width: 100%; position: absolute; top: 0; transform: translate(0, -50%) rotateX(90deg); } .cuboid__side:nth-of-type(2) { height: 100%; width: calc(var(--thickness) * 1vmin); position: absolute; top: 50%; right: 0; transform: translate(50%, -50%) rotateY(90deg); } .cuboid__side:nth-of-type(3) { width: 100%; height: calc(var(--thickness) * 1vmin); position: absolute; bottom: 0; transform: translate(0%, 50%) rotateX(90deg); } .cuboid__side:nth-of-type(4) { height: 100%; width: calc(var(--thickness) * 1vmin); position: absolute; left: 0; top: 50%; transform: translate(-50%, -50%) rotateY(90deg); } .cuboid__side:nth-of-type(5) { height: 100%; width: 100%; transform: translate3d(0, 0, calc(var(--thickness) * 0.5vmin)); position: absolute; top: 0; left: 0; } .cuboid__side:nth-of-type(6) { height: 100%; width: 100%; transform: translate3d(0, 0, calc(var(--thickness) * -0.5vmin)) rotateY(180deg); position: absolute; top: 0; left: 0; } *, *:after, *:before { box-sizing: border-box; transform-style: preserve-3d; transition: background 0.25s; } :root { --base-size: 20; --helicopter-height: calc(var(--base-size) * 1vmin); --helicopter-width: calc(var(--helicopter-height) * 2); --helicopter-one: hsl(0, 0%, calc((60 + (var(--on, 0) * 35)) * 1%)); --helicopter-two: hsl(0, 0%, calc((55 + (var(--on, 0) * 35)) * 1%)); --helicopter-three: hsl(0, 0%, calc((50 + (var(--on, 0) * 35)) * 1%)); --helicopter-four: hsl(0, 0%, calc((40 + (var(--on, 0) * 35)) * 1%)); --chair-one: hsl(0, 0%, calc((20 + (var(--on, 0) * 15)) * 1%)); --chair-two: hsl(0, 0%, calc((15 + (var(--on, 0) * 15)) * 1%)); --chair-three: hsl(0, 0%, calc((10 + (var(--on, 0) * 15)) * 1%)); --chair-four: hsl(0, 0%, calc((5 + (var(--on, 0) * 15)) * 1%)); --dash-one: hsl(0, 0%, calc((50 + (var(--on, 0) * 15)) * 1%)); --dash-two: hsl(0, 0%, calc((45 + (var(--on, 0) * 15)) * 1%)); --dash-three: hsl(0, 0%, calc((40 + (var(--on, 0) * 15)) * 1%)); --dash-four: hsl(0, 0%, calc((35 + (var(--on, 0) * 15)) * 1%)); --accent-one: hsl(10, 60%, calc((30 + (var(--on, 0) * 35)) * 1%)); --accent-two: hsl(10, 60%, calc((25 + (var(--on, 0) * 35)) * 1%)); --accent-three: hsl(10, 60%, calc((20 + (var(--on, 0) * 35)) * 1%)); --accent-four: hsl(10, 60%, calc((15 + (var(--on, 0) * 35)) * 1%)); --rocket-one: hsl(1, 60%, calc((20 + (var(--on, 0) * 25)) * 1%)); --rocket-two: hsl(1, 60%, calc((15 + (var(--on, 0) * 25)) * 1%)); --rocket-three: hsl(1, 60%, calc((10 + (var(--on, 0) * 25)) * 1%)); --rocket-four: hsl(1, 60%, calc((5 + (var(--on, 0) * 25)) * 1%)); --screen-one: hsla(210, 80%, calc((25 + (var(--on, 0) * 25)) * 1%), 0.45); --screen-two: hsla(210, 80%, calc((25 + (var(--on, 0) * 25)) * 1%), 0.4); --screen-three: hsla(210, 80%, calc((25 + (var(--on, 0) * 25)) * 1%), 0.35); --screen-four: hsla(210, 80%, calc((25 + (var(--on, 0) * 25)) * 1%), 0.35); --bg: hsl(210, 80%, calc((15 + (var(--on, 0) * 75)) * 1%)); } body { min-height: 100vh; display: grid; place-items: center; background: var(--bg); overflow: hidden; touch-action: none; } .scene { position: fixed; top: 50%; left: 50%; transform: translate3d(-50%, -50%, 100vmin); transform: translate3d(-50%, -50%, 100vmin) rotateX(-24deg) rotateY(44deg) rotateX(calc(var(--rotate-x, 0) * 1deg)) rotateY(calc(var(--rotate-y, 0) * 1deg)); } .helicopter { height: 100%; width: 100%; position: absolute; top: 50%; left: 50%; transform: translate(-20%, -50%); } .helicopter__wrapper { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); -webkit-animation: float 1s infinite linear; animation: float 1s infinite linear; height: var(--helicopter-height); width: var(--helicopter-width); } @-webkit-keyframes float { 50% { transform: translate(-50%, -65%); } } @keyframes float { 50% { transform: translate(-50%, -65%); } } .helicopter__base-light { --hue: 20; bottom: -6%; width: 6%; height: 6%; left: 47%; position: absolute; } .helicopter__tail-light { --hue: 15; top: -20%; width: 20%; height: 20%; position: absolute; left: 65%; } .helicopter__wing-light { --hue: 90; --speed: 0.4; top: -50%; width: 10%; height: 50%; position: absolute; left: 45%; } .helicopter__wing-light--left { transform: translate3d(0, 0, calc(var(--base-size) * 0.5vmin)); } .helicopter__wing-light--right { transform: translate3d(0, 0, calc(var(--base-size) * -0.5vmin)); } .helicopter > * { position: absolute; } .helicopter__rotor { top: 0; left: 30%; height: 14%; width: 8%; } .helicopter__cockpit { left: 0; top: 14%; width: 54%; height: 70%; } .helicopter__tail { top: 30%; height: 20%; width: 46%; left: 54%; } .helicopter__fin { right: 2%; top: 10%; height: 20%; width: 10%; } .helicopter__stabilizer { right: 2%; top: 30%; height: 10%; width: 10%; } .helicopter__skids { bottom: 0; left: 0; height: 6%; width: 70%; } .helicopter__wing { height: 6%; width: 22%; left: 28%; top: 60%; } .helicopter__launchers { height: 10%; width: 18%; left: 30%; top: 66%; } .helicopter__chair { position: absolute; left: 18%; top: 30%; width: 28%; height: 58%; } .helicopter__chair-back { position: absolute; width: 25%; ri.........完整代码请登录后点击上方下载按钮下载查看
网友评论0