webgl模拟极昼太阳永远不落下海边动画代码

代码语言:html

所属分类:其他

代码描述:webgl模拟极昼太阳永远不落下海边动画代码

代码标签: webgl 模拟 极昼 太阳 永远 不落下 海边 动画 代码

下面为部分代码预览,完整代码请点击下载或在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=Bebas+Neue&family=DM+Mono:wght@300;400&display=swap" rel="stylesheet">
  
  
  
<style>
@layer reset, tokens, base, layout, ui, responsive;

@layer reset {
	*,
	*::before,
	*::after {
		box-sizing: border-box;
		margin: 0;
		padding: 0;
	}
}

@layer tokens {
	:root {
		color-scheme: dark;

		--bg: #0a0a0f;
		--fg: #15120f;
		--muted: color-mix(in oklab, var(--fg) 62%, transparent);
		--accent: #1c1410;
		--track: color-mix(in oklab, var(--fg) 18%, transparent);
		--panel-bg: rgba(255, 255, 255, 0.14);
		--panel-border: rgba(255, 255, 255, 0.22);

		--font-display: "Bebas Neue", sans-serif;
		--font-mono: "DM Mono", monospace;
		--hairline: 0.0625rem;
		--ui-inset: 2rem;
		--nav-x: calc(var(--ui-inset) + 0.125rem);
		--z-ui: 10;
	}
}

@layer base {
	body {
		background: var(--bg);
		color: var(--fg);
		font-family: var(--font-mono);
		overflow-x: hidden;
	}

	#webgl_canvas {
		position: fixed;
		inset: 0;
		width: 100vw;
		height: 100vh;
		height: 100dvh;
		z-index: 0;
		pointer-events: none;
	}
}

@layer layout {
	#scroll_container {
		position: relative;
		z-index: 1;
	}

	section {
		min-height: 100vh;
	}
}

@layer ui {
	#info_panel {
		position: fixed;
		bottom: var(--ui-inset);
		right: var(--ui-inset);
		z-index: var(--z-ui);
		width: min(21rem, calc(100vw - var(--ui-inset) * 2));
		display: flex;
		flex-direction: column;
		background: var(--panel-bg);
		backdrop-filter: blur(14px) saturate(150%);
		-webkit-backdrop-filter: blur(14px) saturate(150%);
		border: var(--hairline) solid var(--panel-border);
		border-radius: 0.875rem;
		padding: 0.9rem 1.1rem;
		box-shadow: 0 0.25rem 1.875rem rgba(0, 0, 0, 0.1);
	}

	#site_title {
		margin-block-end: 0.9rem;
		font-family: var(--font-display);
		font-size: clamp(1.05rem, 1rem + 1.2vw, 1.3rem);
		line-height: 1.05;
		letter-spacing: 0.02em;
		text-transform: uppercase;
		text-align: right;
		color: var(--fg);
	}

	#hud {
		text-align: right;
		font-size: 0.65rem;
		letter-spacing: 0.15em;
		color: var(--muted);
		text-transform: uppercase;

		.progress-bar {
			width: 7.5rem;
			height: var(--hairline);
			background: var(--track);
			margin-block-start: 0.5rem;
			margin-inline-start: auto;
			position: relative;
			overflow: hidden;
		}

		.progress-fill {
			position: absolute;
			inset-block: 0;
			inset-inline-start: 0;
			width: 0%;
			background: var(--accent);
			transition: width 0.1s linear;
		}

		.scene-label {
			font-size: 0.6rem;
			color: var(--accent);
			margin-block-start: 0.4rem;
		}
	}

	#scene_strip {
		position: fixed;
		left: var(--nav-x);
		top: 50%;
		translate: -50% -50%;
		z-index: var(--z-ui);
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
	}

	.scene-dot {
		position: relative;
		display: block;
		width: 0.25rem;
		height: 0.25rem;
		border-radius: 50%;
		background: var(--muted);
		transition: background 0.3s, scale 0.3s;
		cursor: pointer;

		&::before {
			content: "";
			position: absolute;
			inset: -0.2rem;
		}

		&.active {
			background: var(--accent);
			scale: 1.8;
		}
	}

	#prose_.........完整代码请登录后点击上方下载按钮下载查看

网友评论0