three实现三维本地音乐钢琴音符场景动画代码
代码语言:html
所属分类:三维
代码描述:three实现三维本地音乐钢琴音符场景动画代码
代码标签: three 三维 本地 音乐 钢琴 音符 场景 动画 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>月夜琴房 · 真实钢琴</title>
<style>
html,body{margin:0;height:100%;overflow:hidden;background:#0a0d18;font-family:"Microsoft YaHei",system-ui,sans-serif}
canvas{touch-action:none}
#ui{position:fixed;left:16px;bottom:16px;display:flex;gap:10px;z-index:10;align-items:center}
.btn{background:rgba(20,20,28,.78);color:#fff;border:1px solid rgba(255,255,255,.25);
padding:9px 18px;border-radius:22px;cursor:pointer;font-size:14px;backdrop-filter:blur(6px);transition:.2s}
.btn:hover{background:rgba(60,60,75,.85)}
#hint{position:fixed;left:16px;bottom:64px;color:#cfd6e4;font-size:12px;z-index:10;
background:rgba(10,14,26,.55);padding:4px 10px;border-radius:10px}
#loading{position:fixed;inset:0;background:rgba(10,10,18,.8);z-index:20;display:none;
flex-direction:column;align-items:center;justify-content:center;color:#fff}
#loading .bar{width:280px;height:6px;background:rgba(255,255,255,.2);border-radius:3px;margin-top:16px;overflow:hidden}
#loading .fill{height:100%;width:0%;background:linear-gradient(90deg,#ffb35c,#ffe08a);transition:width .15s}
input[type=file]{display:none}
</style>
</head>
<body>
<div id="hint">🖱 拖拽旋转 · 滚轮/双指缩放 · 选择本地音乐自动弹奏</div>
<div id="ui">
<label class="btn" for="file">🎵 选择音乐</label>
<input type="file" id="file" accept="audio/*">
<button class="btn" id="playBtn">▶ 播放</button>
<button class="btn" id="restartBtn">↺ 重播</button>
</div>
<div id="loading"><div id="loadText">正在分析音符… 0%</div><div class="bar"><div class="fill" id="loadFill"></div></div></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
<script>
/* ================= 渲染器 / 场景(单位:米) ================= */
const scene=new THREE.Scene();
scene.background=new THREE.Color(0x070a14);
const camera=new THREE.PerspectiveCamera(45,innerWidth/innerHeight,.05,500);
const renderer=new THREE.WebGLRenderer({antialias:true});
renderer.setSize(innerWidth,innerHeight);
renderer.setPixelRatio(Math..........完整代码请登录后点击上方下载按钮下载查看















网友评论0