three实现三维立体河流上斜拉桥(可切换夜景模式)代码
代码语言:html
所属分类:三维
代码描述:three实现三维立体河流上斜拉桥(可切换夜景模式)代码,桥上有汽车行驶,桥下河流有轮船。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<title>Three.js 斜拉索大桥 | 昼夜切换</title>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<style>
html, body {
margin: 0;
padding: 0;
overflow: hidden;
background: #000;
height: 100%;
}
#app {
position: fixed;
inset: 0;
}
#ui {
position: fixed;
top: 12px;
left: 12px;
display: flex;
flex-direction: column;
gap: 8px;
z-index: 10;
user-select: none;
font-family: system-ui, -apple-system, Segoe UI, Roboto, "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
color: #fff;
}
.panel {
background: rgba(0,0,0,0.4);
border: 1px solid rgba(255,255,255,0.15);
border-radius: 10px;
padding: 10px 12px;
backdrop-filter: blur(6px);
}
#toggleBtn {
appearance: none;
border: none;
padding: 10px 14px;
border-radius: 8px;
background: linear-gradient(135deg, #1b7fff, #0acffe);
color: white;
font-weight: 700;
letter-spacing: 0.5px;
cursor: pointer;
box-shadow: 0 6px 18px rgba(11, 156, 255, 0.4);
}
#toggleBtn:active {
transform: translateY(1px);
}
.hint {
font-size: 12px;
color: #cfd9ff;
opacity: 0.9;
}
.badge {
display: inline-block;
font-size: 12px;
padding: 2px 8px;
border-radius: 999px;
background: rgba(255,255,255,0.15);
margin-left: 8px;
}
#credits {
position: fixed;
right: 12px;
bottom: 10px;
font-size: 12px;
color: #9fb3ff;
background: rgba(0,0,0,0.35);
border: 1px solid rgba(255,255,255,0.12);
border-radius: 8px;
padding: 6px 10px;
z-index: 10;
backdrop-filter: blur(4px);
}
</style>
</head>
<body>
<div id="app"></div>
<div id="ui">
<div class="panel">
<div>
模式:<span id="modeLabel">白天</span>
<span class="badge">N 键</span>
</div>
<button id="toggleBtn">切换到 夜晚 🌙</button>
<div class="hint">提示:拖拽旋转,滚轮缩放,右键平移</div>
</div>
</div>
<div id="credits">Three.js 斜拉桥 · 可切换昼夜 · 汽车/轮船动态</div>
<script type="importmap">
{
"imports":{
"three":"//repo.bfw.wiki/bfwrepo/js/module/three/build/164/three.module.js",
"three/addons/":"//repo.bfw.wiki/bfwrepo/js/module/three/examples/164/jsm/"
}
}
</script>
<script type="module">
import * as THREE from 'three';
import { OrbitControls } from 'https://unpkg.com/three@0.161.0/examples/jsm/controls/OrbitControls.js';
import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js';
import { RenderPass } from 'three/addons/postprocessing/RenderPass.js';
import { UnrealBloomPass } from 'three/addons/postprocessing/UnrealBloomPass.js';
// Renderer
const container = document.getElementById('app');
const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: false });
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
renderer.outputColorSpace = THREE.SRGBColorSpace;
renderer.toneMapping = THREE.ACESFilmicToneMapping;
renderer.toneMappingExposure = 1.0;
container.appendChild(renderer.domElement);
// Scene and Camera
const scene = new THREE.Scene();
scene.background = ne.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0