div+css实现理发店门口的旋转灯自定义调节效果代码
代码语言:html
所属分类:动画
代码描述:div+css实现理发店门口的旋转灯自定义调节效果代码
代码标签: div css实 理发店 门口 旋转灯 自定义 调节
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> @import url("https://fonts.googleapis.com/css?family=Raleway:400,400i,700"); *, *::before, *::after { padding: 0; margin: 0 auto; box-sizing: border-box; } :root { /* consts: */ --pi: 3.1415926536; --sideCount: 36; /* #num on .side elements on DOM */ } body { font-family: Raleway, sans-serif; background-color: #111; color: #fff; min-height: 100vh; display: grid; place-items: center; perspective: 400px; } .scene { position: relative; transform-style: preserve-3d; -webkit-animation: sceneRotate 5s infinite linear; animation: sceneRotate 5s infinite linear; } @-webkit-keyframes sceneRotate { to { transform: rotateY(-360deg); } } @keyframes sceneRotate { to { transform: rotateY(-360deg); } } .side { /* calcs: */ --lineHeight: calc(var(--diameter) / 7 * var(--rLineHeight)); --sideWidth: calc(sin(180deg / var(--sideCount)) * var(--diameter)); --r: calc((var(--sideWidth) / 2) / tan(180 / var(--sideCount) * var(--pi) / 180)); --rotateY: calc(360deg * var(--ix) / var(--sideCount)); --bpy_unit: calc(var(--lineHeight) * -4 * var(--angle) / var(--sideCount)); --gradientAngle: asin(var(--bpy_unit) / var(--sideWidth)); --bpy: calc(var(--ix, 0) * tan(var(--gradientAngle)) * var(--sideWidth)); position: absolute; left: calc(var(--sideWidth) * -0.5px); top: -25vh; width: calc(var(--sideWidth) * 1px); height: 50vh; background-image: repeating-linear-gradient( var(--gradientAngle), #0009 0 calc(var(--lineHeight) * 1px), blue 0 calc(var(--lineHeight) * 2px), #0009 0 calc(var(--lineHeight) * 3px), red 0 calc(var(--lineHeight) * 4px) ); transform: rotateY(var(--rotateY, 0)) translateZ(calc(var(--r) * 1px)); background-position: center calc(var(--bpy) * 1px); background-size: 100% 1000%; } .inputs { position: fixed; left: 0; top: 0; display: flex; flex-direction: column; gap: 1em; padding: 1em; line-height: 1.8; } input { display: block; } </style> </head> <body > <div class="scene"> <div class="side" style="--ix: 0;"></div> <div class="side" style="--ix: 1;"></div> <div class="side" style="--ix: 2;"></div> <div class="side" style="--ix: 3;"></div> <div class="side" style="--ix: 4;"></div> <div class="side" style="--ix: 5;"></div> <div class="side" style="--ix: 6;"></div> <div class="side" style="--ix: 7;"></div> <div class="side" style="--ix: 8;"></div> <div class="side" style="--ix: 9;"></div> <div class="side" style="--ix: 10;"><.........完整代码请登录后点击上方下载按钮下载查看
网友评论0