three实现三维商业综合体可视化数字孪生导航代码
代码语言:html
所属分类:三维
代码描述:three实现三维商业综合体可视化数字孪生导航代码
代码标签: three 三维 商业 综合体 可视化 数字 孪生 导航 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>星耀广场 STARLIGHT PLAZA · Three.js 商业综合体</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&family=ZCOOL+QingKe+HuangYou&display=swap" rel="stylesheet">
<style>
:root{
--ink:#0d131b; --panel:rgba(14,20,28,.9); --line:rgba(242,238,228,.14);
--gold:#f2b544; --teal:#3ec9b8; --coral:#ff6a5c;
--paper:#f2efe6; --muted:#9aa7b4;
--disp:'ZCOOL QingKe HuangYou',system-ui,sans-serif;
--body:'Noto Sans SC',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden;background:var(--ink);font-family:var(--body);color:var(--paper)}
#app{position:fixed;inset:0}
#app canvas{display:block}
#vignette{position:fixed;inset:0;pointer-events:none;z-index:5;
background:radial-gradient(ellipse at 50% 42%,transparent 55%,rgba(4,8,14,.52) 100%)}
/* ---------- 通用面板 ---------- */
.panel{background:var(--panel);border:1px solid var(--line);position:relative;backdrop-filter:blur(6px)}
.panel::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold)}
.clip{clip-path:polygon(0 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%)}
/* ---------- 品牌区 ---------- */
#brand{position:fixed;top:20px;left:22px;z-index:20;padding:14px 22px 12px 20px;pointer-events:none}
#brand .tag{font-size:11px;letter-spacing:4px;color:var(--teal);margin-bottom:4px}
#brand h1{font-family:var(--disp);font-weight:400;font-size:42px;letter-spacing:8px;line-height:1;color:var(--paper);text-shadow:0 2px 18px rgba(0,0,0,.55)}
#brand .en{font-size:11px;letter-spacing:5px;color:var(--gold);margin-top:6px}
#brand .stats{display:flex;gap:14px;margin-top:10px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
#brand .stats b{color:var(--paper);font-weight:500}
#brand .chip{border:1px solid var(--line);padding:1px 8px;color:var(--gold)}
/* ---------- 视图控制条 ---------- */
#viewbar{position:fixed;top:20px;right:22px;z-index:20;display:flex;gap:10px;align-items:stretch}
.vbtn{pointer-events:auto;cursor:pointer;background:var(--panel);border:1px solid var(--line);color:var(--paper);
font-family:var(--body);font-size:13px;letter-spacing:3px;padding:10px 16px;transition:.22s;position:relative;overflow:hidden}
.vbtn::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--gold);transition:.25s}
.vbtn:hover{transform:translateY(-2px);border-color:rgba(242,181,68,.5)}
.vbtn:hover::after{width:100%}
.vbtn.active{background:var(--gold);color:#141414;border-color:var(--gold);font-weight:700}
.vbtn.active::after{display:none}
#dnToggle{pointer-events:auto;cursor:pointer;display:flex;align-items:center;gap:8px;background:var(--panel);
border:1px solid var(--line);padding:0 14px;font-size:13px;letter-spacing:2px;transition:.22s}
#dnToggle:hover{border-color:rgba(62,201,184,.6);transform:translateY(-2px)}
#dnToggle .track{width:40px;height:18px;border:1px solid var(--line);position:relative;transition:.3s}
#dnToggle .thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;background:var(--gold);transition:.3s cubic-bezier(.6,-.2,.3,1.4)}
body.night #dnToggle .thumb{left:24px;background:var(--teal)}
body.night #dnToggle .track{border-color:rgba(62,201,184,.5)}
/* ---------- 楼层导览 ---------- */
#directory{position:fixed;left:22px;top:172px;z-index:20;width:238px;pointer-events:auto}
#dirHead{width:100%;cursor:pointer;display:flex;justify-content:space-between;align-items:center;
background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--teal);
color:var(--paper);font-family:var(--disp);font-size:17px;letter-spacing:4px;padding:9px 14px}
#dirHead .arr{transition:.3s;color:var(--teal)}
#directory.closed .arr{transform:rotate(-90deg)}
#dirBody{max-height:44vh;overflow-y:auto;transition:max-height .4s ease;border:1px solid var(--line);border-top:none;background:var(--panel)}
#directory.closed #dirBody{max-height:0;border:none}
#dirBody::-webkit-scrollbar{width:5px}
#dirBody::-webkit-scrollbar-thumb{background:rgba(242,181,68,.4)}
.floorLabel{font-size:11px;letter-spacing:3px;color:var(--gold);padding:8px 14px 4px;border-bottom:1px dashed var(--line)}
.dirItem{display:flex;align-items:center;gap:9px;padding:7px 14px;cursor:pointer;transition:.18s;border-left:2px solid transparent}
.dirItem:hover{background:rgba(242,181,68,.09);border-left-color:var(--gold);transform:translateX(3px)}
.dirItem .dot{width:9px;height:9px;flex:none;transform:rotate(45deg)}
.dirItem .nm{font-size:13px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dirItem .ct{font-size:10px;color:var(--muted);letter-spacing:1px}
/* ---------- 提示 & 指南针 ---------- */
#hint{position:fixed;left:22px;bottom:20px;z-index:20;display:flex;gap:14px;align-items:center;pointer-events:none;
font-size:12px;color:var(--muted);letter-spacing:1px}
#hint kbd{border:1px solid var(--line);background:var(--panel);padding:2px 8px;font-family:var(--body);color:var(--paper);font-size:11px}
#compass{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:var(--panel);position:relative;pointer-events:none}
#compass::after{content:"N";position:absolute;top:3px;left:50%;transform:translateX(-50%);font-size:9px;color:var(--gold)}
#needle{position:absolute;inset:0;transition:transform .1s linear}
#needle::before{content:"";position:absolute;left:50%;top:9px;transform:translateX(-50%);
border:5px solid transparent;border-bottom:15px solid var(--coral)}
/* ---------- 门店信息 ---------- */
#info{position:fixed;right:22px;bottom:20px;z-index:25;width:302px;padding:18px 20px 16px;
transform:translateX(130%);transition:transform .5s cubic-bezier(.2,.9,.25,1)}
#info.show{transform:translateX(0)}
#info .row{display:flex;gap:8px;align-items:center;margin-bottom:8px}
#info .fBadge{font-family:var(--disp);background:var(--gold);color:#161616;padding:2px 10px;font-size:15px;letter-spacing:2px}
#info .cat{border:1px solid var(--teal);color:var(--teal);font-size:11px;padding:2px 9px;letter-spacing:2px}
#info .rate{margin-left:auto;color:var(--gold);font-size:13px;letter-spacing:1px}
#info h2{font-family:var(--disp);font-weight:400;font-size:30px;letter-spacing:4px;line-height:1.1}
#info .en{font-size:11px;letter-spacing:3px;color:var(--muted);margin:4px 0 10px}
#info p{font-size:13px;line-height:1.75;color:#cfd6dd;border-top:1px dashed var(--line);padding-top:10px}
#info .meta{font-size:11px;color:var(--muted);margin-top:8px;letter-spacing:1px}
#info .acts{display:flex;gap:10px;margin-top:12px}
#info button{cursor:pointer;font-family:var(--body.........完整代码请登录后点击上方下载按钮下载查看















网友评论0