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