webcomponent实现太阳系行星运行轨迹交互效果代码
代码语言:html
所属分类:其他
代码描述:webcomponent实现太阳系行星运行轨迹交互效果代码
代码标签: webcomponent 太阳系 行星 运行 轨迹 交互
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet"> <style> @layer reset, token, pen; @layer pen { html { overflow: auto; scrollbar-width: none; } body { display: flex; flex-direction: column; font-family: Space Mono, monospace; } ow-system { --cycle: 1320s; --cycle: 120s; --unit: calc(var(--scale, 1) * 95vmin); --sun-glow: #ba702f; --orbit-border-width: 1px; position: relative; isolation: isolate; flex: 1; display: grid; grid-template-columns: 1fr; grid-template-rows: 1fr; justify-content: center; align-items: center; block-size: calc(1 * var(--unit)); inline-size: calc(1 * var(--unit)); aspect-ratio: 1; margin: auto; background: radial-gradient(circle at center, var(--sun-glow), transparent 35%) no-repeat center/var(--unit) var(--unit); transition: --scale 5ms linear; -webkit-animation: --sun-glow var(--cycle) linear infinite; animation: --sun-glow var(--cycle) linear infinite; } ow-system::before { position: absolute; inset: 0; z-index: -1; background: url(https://res.cloudinary.com/chriskirknielsen/image/upload/c_crop,ar_1:1/v1729476626/image_uw02rg.png) no-repeat 50% 51%/contain; transform: translateY(0.375%); opacity: 0.5; } #sun { --orbit-radius: 0.00000000000000001; --body-radius: 0.05; --orbital-speed: 0; --w-color: #f6ab48; -webkit-animation: --orbit calc(var(--cycle) * 0.1) linear infinite; animation: --orbit calc(var(--cycle) * 0.1) linear infinite; } #sun ow-wanderer { -webkit-animation: --supernova var(--cycle) linear infinite; animation: --supernova var(--cycle) linear infinite; } #sun-station { --orbit-radius: 0.06; --body-radius: 0.0075; --orbital-speed: 0.9; --w-color: gold; } #hourglass-twins { --orbit-radius: 0.105; --body-radius: 0.0000001; --orbital-speed: 0.091667; --w-color: orangered; --initial-delay: -8.5s; } #hourglass-twins > ow-wanderer { display: flex; justify-content: center; align-items: center; } #hourglass-twins > ow-wanderer:defined[image] { --gap: calc(0.0075 * var(--unit)); } #hourglass-twins > ow-wanderer:defined[image]::before { content: ""; position: absolute; inset: 50%; flex-shrink: 0; block-size: var(--gap); inline-size: var(--gap); margin: auto; background: inherit; scale: 2; } #twins { --orbit-radius: 0.0075; --body-radius: 0.0000001; --orbital-speed: 0; } #ash-twin, #ember-twin { --orbit-radius: 0.0075; --body-radius: 0.005; --orbital-speed: 0; } #ember-twin { --w-offset: 50%; } #timber-hearth { --orbit-radius: 0.18; --body-radius: 0.0075; --orbital-speed: 0.191667; --w-color: greenyellow; } #attlerock { --orbit-radius: 0.0125; --body-radius: 0.005; --orbital-speed: 0; --w-color: slategray; } #brittle-hollow { --orbit-radius: 0.245; --body-radius: 0.01; --orbital-speed: 0.3; --w-color: darkturquoise; } #hollows-lantern { --orbit-radius: 0.015; --body-radius: 0.005; --orbital-speed: 0; --w-color: darkorange; } #giants-deep { --orbit-radius: 0.3425; --body-radius: 0.0225; --orbital-speed: 0.5; --w-color: darkseagreen; } #orbital-probe-cannon { --orbit-radius: 0.025; --body-radius: 0.005; --orbital-speed: 0; --w-color: gold; --w-angle: 90deg; } #dark-bramble { --orbit-radius: 0.4175; --body-radius: 0.01625; --orbital-speed: 0.6667; --w-color: darkslateblue; } #interloper { --orbit-radius: 0.278; --body-radius: 0.0075; --orbit-ratio: 0.575; --orbital-speed: 0.441667; --tilt-axis: -8.9deg; --w-color: cyan; --orbit-dir: -1; transform-origin: 93.5% 47.6%; transform: translate(-41%, 0) rotate(var(--tilt-axis)); } #interloper ow-wanderer { --revolution-animation: none; offset-rotate: auto -90deg; } #interloper ow-wanderer, #interloper ow-name { -webkit-animation-timing-function: cubic-bezier(0.25, 0.6, 0.75, 0.4); animation-timing-function: cubic-bezier(0.25, 0.6, 0.75, 0.4); } #quantum-moon { --orbit-radius: 0.0275; --body-radius: 0.0075; --orbital-speed: 0.5; --w-color: slategray; --w-offset: 50%; } #white-hole-station { --orbit-radius: 0.5; --body-radius: 0.01625; --orbital-speed: 0.85; --w-color: gold; } ow-orbit { position: relative; z-index: -1; pointer-events: none; grid-area: 1/1/-1/-1; place-self: center; display: flex; block-size: calc(var(--orbit-radius) * 2 * var(--unit) * var(--orbit-ratio, 1)); inline-size: calc(var(--orbit-radius) * 2 * var(--unit)); border: var(--orbit-border-width) solid #8888; border-color: color-mix(in oklch, transparent, color-mix(in oklch, var(--fg), var(--w-color))); border-radius: 50%; } ow-wanderer { --rev.........完整代码请登录后点击上方下载按钮下载查看
网友评论0