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>一勺园林 · 苏州园林数字沙盘</title>
<link href="https://fonts.googleapis.com/css2?family=Ma+Shan+Zheng&family=Noto+Serif+SC:wght@400;600&display=swap" rel="stylesheet">
<style>
:root{ --ink:#2e312c; --paper:#edeae1; --cinnabar:#a03d2c; }
*{ margin:0; padding:0; box-sizing:border-box; }
html,body{ height:100%; overflow:hidden; background:var(--paper); }
body{ font-family:'Noto Serif SC', serif; color:var(--ink); }
#app{ position:fixed; inset:0; }
#app canvas{ display:block; }
/* 遮罩 */
#veil{ position:fixed; inset:0; background:var(--paper); z-index:60; display:grid; place-items:center;
transition:opacity 1.2s ease; }
#veil.gone{ opacity:0; pointer-events:none; }
#veil span{ font-family:'Ma Shan Zheng'; font-size:22px; letter-spacing:.5em; opacity:.45; }
/* 标题 */
.brand{ position:fixed; top:26px; left:26px; z-index:20; display:flex; gap:14px; align-items:flex-start;
opacity:0; transform:translateY(-8px); transition:all 1.2s ease .3s; pointer-events:none; }
.brand.in{ opacity:1; transform:none; }
.brand h1{ writing-mode:vertical-rl; font-family:'Ma Shan Zheng', serif; font-weight:400;
font-size:46px; letter-spacing:.18em; line-height:1; color:var(--ink); }
.brand .sub{ writing-mode:vertical-rl; font-size:12px; letter-spacing:.42em; opacity:.62; margin-top:6px; }
.brand .seal{ width:32px; height:32px; margin-top:auto; background:var(--cinnabar); color:#f4eee0;
font-family:'Ma Shan Zheng'; font-size:20px; display:grid; place-items:center; border-radius:3px;
transform:rotate(-4deg); box-shadow:0 2px 8px rgba(0,0,0,.25); }
/* 工具栏 */
.toolbar{ position:fixed; top:26px; right:26px; z-index:20; display:flex; flex-direction:column; gap:10px;
opacity:0; transition:opacity 1.2s ease .5s; }
.toolbar.in{ opacity:1; }
.toolbar button{ width:42px; height:42px; border-radius:50%; border:1px solid rgba(46,49,44,.25);
background:rgba(245,243,236,.85); backdrop-filter:blur(6px); color:var(--ink); cursor:pointer;
display:grid; place-items:center; transition:all .25s; }
.toolbar button:hover{ border-color:var(--cinnabar); color:var(--cinnabar); transform:translateY(-2px); }
.toolbar button.on{ background:var(--cinnabar); border-color:var(--cinnabar); color:#f4eee0; }
.toolbar svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6;
stroke-linecap:round; stroke-linejoin:round; }
/* 景点名录 */
.roster{ position:fixed; left:50%; bottom:22px; transform:translateX(-50%); z-index:20;
display:flex; align-items:center; background:rgba(245,243,236,.88); backdrop-filter:blur(8px);
border:1px solid rgba(46,49,44,.18); border-radius:4px; padding:0 14px; max-width:92vw; overflow-x:auto;
opacity:0; transition:opacity 1.2s ease .7s; }
.roster.in{ opacity:1; }
.roster .r-label{ font-size:11px; letter-spacing:.3em; opacity:.55; padding:12px 12px 12px 2px;
border-right:1px solid rgba(46,49,44,.18); white-space:nowrap; }
.roster button{ border:none; background:none; font-family:inherit; font-size:13px; letter-spacing:.12em;
color:var(--ink); padding:13px 13px; cursor:pointer; white-space:nowrap; position:relative; transition:color .2s; }
.roster button + button::before{ content:''; position:absolute; left:0; top:50%; transform:translateY(-50%);
width:1px; height:12px; background:rgba(46,49,44,.25); }
.roster button:hover{ color:var(--cinnabar); }
.roster button.on{ color:var(--cinnabar); }
.roster button.on::after{ content:''; position:absolute; left:13px; right:13px; bottom:8px; height:2px;
background:var(--cinnabar); }
/* 悬浮提示 */
#tip{ position:fixed; left:0; top:0; z-index:30; pointer-events:none; background:rgba(40,42,38,.92);
color:#f0ece0; padding:9px 14px 10px; border-radius:3px; border-left:3px solid var(--cinnabar);
opacity:0; transition:opacity .18s; max-width:220px; }
#tip.show{ opacity:1; }
#tip b{ display:block; font-family:'Ma Shan Zheng'; font-weight:400; font-size:17px; letter-spacing:.1em; }
#tip span{ display:block; font-size:11px; opacity:.65; letter-spacing:.2em; margin-top:2px; }
/* 信息面板 */
#panel{ position:fixed; top:0; right:0; height:100%; width:340px; max-width:88vw; z-index:25;
background:rgba(246,244,237,.96); backdrop-filter:blur(10px); border-left:1px solid rgba(46,49,44,.15);
box-shadow:-18px 0 50px rgba(30,32,28,.18); padding:56.........完整代码请登录后点击上方下载按钮下载查看















网友评论0