js+css实现三维可调节参数Pixar点亮的台灯效果代码
代码语言:html
所属分类:三维
代码描述:js+css实现三维可调节参数Pixar点亮的台灯效果代码,使用gui来调节角度、支架伸缩、旋转角度、是否开灯等参数。
代码标签: js+css 三维 调节 参数 Pixar 点亮 台灯
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> *, *::before, *::after { padding: 0; box-sizing: border-box; } body { background-color: #111; color: #fff; min-height: 100vh; display: grid; place-items: center; margin: 0 auto; perspective: 800px; *:not(:empty) { transform-style: preserve-3d; } } .scene { --sceneAngleX: -10; --sceneAngleY: -30; --angle1: 0; --angle2: 0; --angle3: 40; --lampColor: #dde; --lightColorBase: #ff0; --lightColorBeam: #ff0; position: relative; pointer-events: none; transform: rotateX(calc(var(--sceneAngleX) * 1deg)) rotateY(calc(var(--sceneAngleY) * 1deg)); * { position: absolute; } } .lamp { transform: translate(-6em, 12em); } .base { transform: translateY(1.8em); div { inset: -0.5em -1.5em; background-color: var(--lampColor); transform: rotateY(calc(var(--ix) * 30deg)) translateZ(5.5em); transform-style: preserve-3d; box-shadow: 0 0 0.5em #000 inset; &::after { content: ''; position: absolute; width: 100%; height: 5.7em; background-color: var(--lampColor); background-image: radial-gradient(circle at 50% 100%, #000a, #0000 100%); transform: rotateX(-100deg); transform-origin: top; -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%); clip-path: polygon(0 0, 100% 0, 50% 100%); box-shadow: 0 0 0.5em #000 inset; } } } .s { left: 0em; bottom: 100%; width: 1em; transform-origin: bottom; } .s1 { left: -0.5em; bottom: 0; height: 2em; } .s2 { height: 4em; transform: rotateZ(calc(var(--angle1) * 1deg + var(--angle2) * -1deg + 60deg)); } .s3 { height: 8em; transform: rotateZ(calc(var(--angle1) * 1deg + var(--angle2) * 1deg - 30deg)); } .s4 { height: 8em; transform: rotateZ(calc(var(--angle2) * 2deg - 90deg)); } .s5 { height: 4em; transform: rotateZ(calc(var(--angle2) * -2deg + 90deg)); } .s6 { height: 6em; transform: rotateZ(calc(var(--angle2) * -3deg + 60deg)); } .s7 { height: 4em; transform: rotateZ(calc(var(--angle2) * -2deg + 30deg)); } .s8 { height: 6em; transform: rotateZ(calc(var(--angle2) * -1deg + 30deg)); } .s9 { height: 4em; transform: rotateZ(calc(var(--angle2) * 1deg + -30deg)); } .s10 { height: 4em; transform: rotateZ(calc(var(--angle2) * 1deg + 30deg)); } .s11 { height: 1.5em; .........完整代码请登录后点击上方下载按钮下载查看
网友评论0