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">
<title>长征二号F · 全流程发射演示</title>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&family=Rajdhani:wght@500;600;700&family=ZCOOL+QingKe+HuangYou&display=swap" rel="stylesheet">
<style>
:root{
--red:#ff4636; --red-d:#c2271f; --gold:#ffc95e; --amber:#ffb347;
--ink:#eaf1fa; --dim:#8ea3c0; --panel:rgba(7,13,25,.84); --line:rgba(255,196,110,.25);
--fd:'ZCOOL QingKe HuangYou','Noto Sans SC',sans-serif;
--fn:'Rajdhani','Noto Sans SC',sans-serif;
--fb:'Noto Sans SC',sans-serif;
--cut:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden;background:#04060c;font-family:var(--fb);color:var(--ink);user-select:none}
#stage{position:fixed;inset:0}
#stage canvas{display:block}
#vig{position:fixed;inset:0;pointer-events:none;z-index:5;background:radial-gradient(ellipse at 50% 44%,transparent 55%,rgba(2,4,10,.55) 100%)}
.panel{background:linear-gradient(160deg,rgba(12,20,36,.88),rgba(6,10,20,.74));border:1px solid var(--line);clip-path:var(--cut);position:relative}
.panel::before{content:'';position:absolute;top:0;left:10px;right:0;height:2px;background:linear-gradient(90deg,var(--red),transparent 70%)}
.ptitle{font-family:var(--fd);font-size:14px;letter-spacing:.26em;display:flex;align-items:center;gap:8px;color:var(--ink)}
.ptitle::before{content:'';width:14px;height:2px;background:var(--red);flex:none}
#top{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:16px 20px;z-index:10;pointer-events:none}
.mission{display:flex;gap:14px;align-items:center;animation:inL .8s .15s both}
.flag{width:46px;height:33px;background:linear-gradient(150deg,#ff5340,#b81d1d);display:grid;place-items:center;color:#ffd94d;font-size:20px;clip-path:polygon(0 0,100% 0,100% 76%,84% 100%,0 100%);box-shadow:0 0 18px rgba(255,70,50,.4)}
h1{font-family:var(--fd);font-weight:400;font-size:clamp(19px,2.3vw,29px);letter-spacing:.12em}
h1 em{font-style:normal;color:var(--gold)}
.sub{font:600 10px/1 var(--fn);letter-spacing:.34em;color:var(--dim);margin-top:6px}
#clockbox{padding:10px 18px 12px;text-align:right;min-width:210px;animation:inR .8s .25s both}
#phaseName{font-family:var(--fd);font-size:15px;letter-spacing:.3em;color:var(--gold)}
#tclock{font:700 38px/1.15 var(--fn);color:var(--amber);text-shadow:0 0 16px rgba(255,179,71,.45);font-variant-numeric:tabular-nums;letter-spacing:.05em}
.stat{font:600 10.5px var(--fn);letter-spacing:.22em;color:var(--dim);display:flex;justify-content:flex-end;align-items:center}
.led{width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 9px var(--amber);display:inline-block;margin-right:7px}
.led.blink{animation:blink 1s steps(2) infinite}
.led.red{background:var(--red);box-shadow:0 0 9px var(--red)}
.led.green{background:#43e08a;box-shadow:0 0 9px #43e08a}
.led.gold{background:var(--gold);box-shadow:0 0 9px var(--gold)}
@keyframes blink{50%{opacity:.12}}
#tl{position:fixed;left:20px;top:50%;transform:translateY(-50%);z-index:10;pointer-events:none;animation:inTL .8s .4s both}
#tl .panel{padding:12px 14px 12px 12px;width:196px}
.ph{display:flex;gap:10px;align-items:center;padding:6px 8px;border-left:2px solid rgba(255,255,255,.12);opacity:.5;transition:.35s;margin-top:2px}
.ph .dot{width:7px;height:7px;border:1px solid var(--gold);transform:rotate(45deg);flex:none;transition:.35s}
.ph b{font:600 9.5px var(--fn);color:var(--dim);display:block;letter-spacing:.1em}
.ph span{font:500 12.5px var(--fb)}
.ph.done{opacity:.85;border-left-color:var(--gold)}
.ph.done .dot{background:var(--gold)}
.ph.active{opacity:1;border-left-color:var(--red);background:linear-gradient(90deg,rgba(255,70,54,.16),transparent)}
.ph.active .dot{background:var(--red);box-shadow:0 0 9px var(--red)}
.ph.active span{color:#fff}
#right{position:fixed;right:20px;top:96px;z-index:10;display:flex;flex-direction:column;gap:12px;pointer-events:none;animation:inR .8s .5s both}
#telem{width:236px;padding:12px 16px 14px}
.tgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:10px}
.read label{display:block;font:500 10px var(--fb);color:var(--dim);letter-spacing:.18em}
.read b{font:700 23px/1.15 var(--fn);color:var(--amber);text-shadow:0 0 12px rgba(255,179,71,.35);font-variant-numeric:tabular-nums}
.read i{font:600 10px var(--fn);color:var(--dim);font-style:normal;margin-left:3px}
.frow{margin-top:8px}
.frow label{font:500 10px var(--fb);color:var(--dim);letter-spacing:.14em}
.bar{height:5px;background:rgba(255,255,255,.08);margin-top:4px}
.bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--red),var(--gold));box-shadow:0 0 8px rgba(255,179,71,.4);transition:width .25s}
#log{width:236px;padding:10px 14px 14px;max-height:36vh;overflow:hidden}
.rec{color:var(--red);font-size:9px;animation:blink 1.2s steps(2) infinite;margin-left:auto}
#logList{list-style:none;margin-top:9px;display:flex;flex-direction:column;gap:6px;-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent);mask-image:linear-gradient(180deg,#000 72%,transparent)}
#logList li{font:400 11.5px/1.5 var(--fb);color:#c9d6e8;border-left:2px solid rgba(255,70,54,.7);padding:3px 8px;background:linear-gradient(90deg,rgba(255,70,54,.09),transparent);animation:lin .35s ease both}
#logList li b{font:600 11px var(--fn);color:var(--amber);margin-right:7px;letter-spacing:.04em}
@keyframes lin{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
#cd{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);text-align:center;z-index:20;pointer-events:none;opacity:0;transition:opacity .35s}
#cd.show{opacity:1}
#cdNum{font:700 clamp(90px,19vh,190px)/1 var(--fn);color:var(--amber);text-shadow:0 0 34px rgba(255,179,71,.55),0 0 90px rgba(255,90,40,.35)}
#cdNum.tick{animation:tick .85s ease}
@keyframes tick{0%{transform:scale(1.28);opacity:.35}100%{transform:scale(1);opacity:1}}
#cdLbl{font-family:var(--fd);letter-spacing:.55em;color:var(--ink);margin-top:6px;font-size:15px;text-indent:.55em}
#banner{position:fixed;left:50%;top:27%;transform:translate(-50%,-50%);z-index:21;pointer-events:none;opacity:0;text-align:center}
#banner.show{animation:ban 2.5s ease both}
#banner .bt{font-family:var(--fd);font-size:clamp(32px,6.2vw,72px);color:#fff;letter-spacing:.3em;text-indent:.3em;text-shadow:0 0 26px rgba(255,70,50,.85),0 3px 0 var(--red-d)}
#banner .bl{height:2px;margin:12px auto 0;width:70%;background:lin.........完整代码请登录后点击上方下载按钮下载查看















网友评论0