three实现三维雾隐山居木屋景色场景代码
代码语言:html
所属分类:其他
代码由minimax-m3.1-flash ai生成,可能有错误,仅供参考:点击查看提示词
代码描述:三维雾隐山居木屋景色
代码标签: three 三维 雾隐山居 木屋 景色 场景 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover" />
<meta name="theme-color" content="#0a0f14" />
<title>雾隐山居 · Misty Mountain Retreat</title>
<style>
:root{
--ink:#0a0f14;
--text:#e9ece7;
--muted:#9aaca4;
--amber:#e9a94b;
--amber-soft:rgba(233,169,75,.16);
--moss:#3f6b57;
--fog:#a8b6bd;
--wood:#8a5a3b;
--line:rgba(255,255,255,.10);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;margin:0;background:var(--ink);overflow:hidden;color:var(--text);
font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
canvas{display:block;touch-action:none}
#app{position:fixed;inset:0}
/* ---------- 左上角品牌 ---------- */
.brand{position:fixed;left:24px;top:22px;display:flex;gap:13px;align-items:center;z-index:6;pointer-events:none;
text-shadow:0 2px 20px rgba(0,0,0,.75)}
.brand .mark{width:44px;height:44px;flex:0 0 auto;filter:drop-shadow(0 3px 12px rgba(0,0,0,.6))}
.brand h1{margin:0;font-size:23px;font-weight:600;letter-spacing:.24em;line-height:1.15}
.brand p{margin:5px 0 0;font-size:9.5px;letter-spacing:.36em;color:var(--muted);text-transform:uppercase}
/* ---------- 右上角工具 ---------- */
.tools{position:fixed;right:24px;top:22px;display:flex;gap:10px;z-index:9}
.tbtn{display:flex;align-items:center;gap:7px;height:38px;padding:0 15px;border-radius:999px;cursor:pointer;
background:rgba(14,24,21,.52);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);
border:1px solid var(--line);color:#dfe7e1;font-size:12.5px;letter-spacing:.06em;
box-shadow:0 8px 26px rgba(0,0,0,.4);transition:.22s}
.tbtn:hover{border-color:rgba(233,169,75,.5);color:#fff;box-shadow:0 8px 28px rgba(0,0,0,.5),0 0 18px rgba(233,169,75,.16)}
.tbtn svg{width:15px;height:15px;flex:0 0 auto}
.tbtn .st{font-size:11px;color:var(--amber);min-width:14px}
/* ---------- 底部提示 ---------- */
.hint{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:6;pointer-events:none;
padding:8px 18px;border-radius:999px;font-size:11.5px;letter-spacing:.14em;color:#c6d2cb;
background:rgba(12,20,18,.42);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
border:1px solid rgba(255,255,255,.08);box-shadow:0 8px 24px rgba(0,0,0,.4);white-space:nowrap}
.hint b{color:var(--amber);font-weight:500}
/* ---------- 控制面板 ---------- */
.panel{position:fixed;right:24px;top:78px;bottom:22px;width:334px;z-index:8;
padding:18px 18px 24px;border-radius:22px;overflow-y:auto;overscroll-behavior:contain;
background:linear-gradient(180deg,rgba(17,28,25,.76),rgba(9,16,14,.70));
backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);
border:1px solid var(--line);box-shadow:0 26px 70px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.06)}
.panel::-webkit-scrollbar{width:9px}
.panel::-webkit-scrollbar-track{background:rgba(255,255,255,.04);border-radius:9px}
.panel::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--moss),var(--wood));border-radius:9px;border:2px solid transparent;background-clip:padding-box}
.panel::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#4e836b,#a06a44);background-clip:padding-box}
.panel h2{margin:0 0 14px;font-size:10.5px;letter-spacing:.34em;color:var(--muted);font-weight:500;text-transform:uppercase;
display:flex;align-items:center;gap:10px}
.panel h2::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
/* 时钟 */
.clock{text-align:center;padding:2px 0 16px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.clock .time{font-size:54px;font-weight:250;letter-spacing:.03em;font-variant-numeric:tabular-nums;line-height:1;
color:#f6e9d6;text-shadow:0 0 34px rgba(233,169,75,.34)}
.clock .phase{display:inline-block;margin-top:11px;font-size:10.5px;letter-spacing:.3em;color:var(--amber);
border:1px solid rgba(233,169,75,.34);border-radius:999px;padding:3.5px 13px;background:var(--amber-soft)}
.clock .date{margin-top:9px;font-size:11px;color:var(--muted);letter-spacing:.1em}
/* 控件 */
.grp{margin-bottom:17px}
.lbl{display:flex;justify-content:space-between;align-items:baseline;font-size:10.5px;letter-spacing:.2em;
color:var(--muted);text-transform:uppercase;margin-bottom:9px}
.lbl b{color:#f1e6d4;font-weight:500;letter-spacing:.04em;font-size:12px;font-variant-numeric:tabular-nums;
font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:20px;background:transparent;cursor:pointer;display:block}
input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;
background:linear-gradient(90deg,rgba(63,107,87,.9),rgba(168,182,189,.45) 55%,rgba(233,169,75,.75))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;margin-top:-5.5px;border-radius:50%;
background:radial-gradient(circle at 35% 30%,#ffe9c0,#e9a94b 58%,#a8712c);
box-shadow:0 0 0 1px rgba(0,0,0,.4),0 0 14px rgba(233,169,75,.5);transition:.15s}
input[type=range]::-webkit-slider-thumb:hover{box-shadow:0 0 0 1px rgba(0,0,0,.4),0 0 20px rgba(233,169,75,.85)}
input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:linear-gradient(90deg,rgba(63,107,87,.9),rgba(233,169,75,.75))}
input[type=range]::-moz-range-thumb{width:15px;height:15px;border:none;border-radius:50%;
background:radial-gradient(circle at 35% 30%,#ffe9c0,#e9a94b 58%,#a8712c);box-shadow:0 0 12px rgba(233,169,75,.5)}
.seg{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.seg button{font:inherit;font-size:12px;padding:8px 0;border-radius:11px;cursor:pointer;color:var(--muted);
background:rgba(255,255,255,.035);border:1px solid var(--line);transition:.2s}
.seg button:hover{color:#e8efe9;border-color:rgba(233,169,75,.35)}
.seg button.on{color:#f8ecd8;border-color:rgba(233,169,75,.55);
background:linear-gradient(180deg,rgba(233,169,75,.26),rgba(233,169,75,.08));
box-shadow:inset 0 0 18px rgba(233,169,75,.14),0 0 14px rgba(233,169,75,.1)}
.seg.wx button.on{background:linear-gradient(180deg,rgba(63,107,87,.5),rgba(63,107,87,.16));border-color:rgba(120,170,150,.5);
box-shadow:inset 0 0 18px rgba(120,190,160,.12)}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:12.5px;
border-bottom:1px dashed rgba(255,255,255,.055)}
.row:last-child{border-bottom:none}
.row span{color:#cbd6d0;letter-spacing:.04em}
.sw{position:relative;flex:0 0 auto;width:38px;height:21px;border-radius:999px;background:rgba(255,255,255,.10);
border:1px solid var(--line);cursor:pointer;transition:.25s}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#c3cdc7;transition:.25s}
.sw.on{background:linear-gradient(90deg,var(--moss),var(--amber));border-color:rgba(233,169,75,.4)}
.sw.on::after{left:20px;background:#fff5e2;box-shadow:0 0 10px rgba(255,220,160,.7)}
select{width:100%;font:inherit;font-size:12px;padding:9px 11px;border-radius:11px;cursor:pointer;color:#e6ece7;
background:rgba(255,255,255,.05);border:1px solid var(--line);outline:none;appearance:none;-webkit-appearance:none;
background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
select option{background:#101a17;color:#e6ece7}
.act{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.act .wide{grid-column:1/-1}
.btn{font:inherit;font-size:12.5px;padding:11px 6px;border-radius:12px;cursor:pointer;color:#dfe7e1;letter-spacing:.05em;
background:rgba(255,255,255,.045);border:1px solid var(--line);transition:.2s}
.btn:hover{color:#fff;border-color:rgba(233,169,75,.45);background:rgba(233,169,75,.10)}
.btn:active{transform:translateY(1px)}
.btn.gold{color:#fbeed6;border-color:rgba(233,169,75,.4);background:linear-gradient(180deg,rgba(233,169,75,.24),rgba(233,169,75,.07))}
.btn.gold:hover{background:linear-gradient(180deg,rgba(233,169,75,.36),rgba(233,169,75,.12))}
.tip{font-size:10.5px;color:#6f8179;line-height:1.7;letter-spacing:.04em;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
/* toast */
.toast{position:fixed;left:50%;bottom:104px;transform:translate(-50%,16px);opacity:0;pointer-events:none;z-index:30;
padding:10px 18px;border-radius:999px;font-size:12.5px;color:#f2e7d6;letter-spacing:.05em;
background:rgba(16,26,22,.94);border:1px solid rgba(233,169,75,.32);box-shadow:0 12px 34px rgba(0,0,0,.55);transition:.35s}
.toast.show{opacity:1;transform:translate(-50%,0)}
/* 启动 / 错误 */
#boot{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;
background:radial-gradient(120% 90% at 50% 30%,#16211d 0%,#0a0f14 70%);transition:opacity .9s ease}
#boot.hide{opacity:0;pointer-events:none}
#boot .in{text-align:center;max-width:420px;padding:0 26px}
#boot h2{margin:0;font-weight:250;font-size:17px;letter-spacing:.34em;color:#d3ddd6}
#boot .sub{margin-top:12px;font-size:10px;letter-spacing:.4em;color:#7c8d85;text-transform:uppercase}
#boot .bar{width:190px;height:2px;margin:26px auto 0;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden}
#boot .bar i{display:block;width:42%;height:100%;background:linear-gradient(90deg,var(--moss),var(--amber));animation:sl 1.25s infinite ease-in-out}
@keyframes sl{0%{transform:translateX(-110%)}100%{transform:translateX(320%)}}
#boot .msg{margin-top:22px;font-size:12.5px;line-height:1.85;color:#9fb0a8;letter-spacing:.04em}
#boot .msg code{color:var(--amber);font-size:12px}
#boot.err .bar{display:none}
#boot.err h2{color:#ff9d8c;letter-spacing:.2em}
#boot.err .sub{color:#c2736a}
@media (max-width:900px){
.panel{right:0;left:0;top:auto;bottom:0;width:auto;max-height:47vh;border-radius:22px 22px 0 0;padding:14px 15px 26px}
.brand{left:14px;top:14px;gap:10px}
.brand .mark{width:34px;height:34px}
.brand h1{font-size:17px;letter-spacing:.18em}
.brand p{font-size:8px;letter-spacing:.26em}
.tools{right:12px;top:13px;gap:7px}
.tbtn{height:33px;padding:0 11px;font-size:11.5px}
.hint{bottom:calc(47vh + 12px);font-size:10.5px;padding:7px 13px;letter-spacing:.08em}
.clock .time{font-size:42px}
.clock{padding-bottom:12px;margin-bottom:11px}
.toast{bottom:calc(47vh + 56px)}
}
@media (max-width:420px){ .hint{font-size:9.5px} .brand p{display:none} }
</style>
</head>
<body>
<div id="app"></div>
<div class="brand">
<svg class="mark" viewBox="0 0 48 48" fill="none" aria-hidden="true">
<path d="M3 38 L16 14 L24 27 L30 17 L45 38 Z" fill="#2c4a3e" stroke="#8fb39c" strok.........完整代码请登录后点击上方下载按钮下载查看















网友评论0