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