8pt

Four Answer Window

四问答案窗口•数据展示
介绍

毛玻璃浏览器窗口里的四格答案面板:搜索框轮换关键词,进度条逐步走满,四张卡片依次从“读取中”切换为“就绪”,分别展示收入排行、下载条形图、广告素材扇形和付费墙手机。窄屏改为两列。

拆自整页模板 澄榜 应用市场情报首页,可以单独使用,也能和同一模板拆出的其他组件拼回整页。

纯 HTML、CSS 与少量原生 JS,没有框架依赖。复制提示词交给 Claude Code、Cursor、Trae 或 Codex,模型会把 Four Answer Window 加进你的项目并换成你的配色。

适用场景

仪表盘、数据表格、图表卡片、对比表和状态面板。

安装

订阅 Builder 后,用 8pt CLI 装进项目,或在已接入 8pt MCP 的编辑器里直接调用。

$ npm i -g @8pt-dev/cli && 8pt add four-answer-window
mcp › 使用 8pt MCP 调用 get_component("four-answer-window")

代码

Four Answer Window 的源码,动效只用 transform 与 opacity,并尊重减少动态效果设置。

<div class="x-faw"><div class="faw-win"><div class="faw-bar"><span class="faw-dots"><i></i><i></i><i></i></span><span class="faw-url">澄榜 / 探索</span><span class="faw-tag"><i></i>示意数据</span></div><div class="faw-body"><div class="faw-top"><div class="faw-q"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="M20 20l-4-4"/></svg><span class="faw-typed">卡路里计算</span><i class="faw-caret"></i></div><div class="faw-prog"><span><b class="faw-n">0</b> / 4 个答案已就绪</span><i><u></u></i></div></div><div class="faw-grid">
<div class="faw-c"><div class="faw-h"><span class="faw-hi"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 17l6-6 4 4 8-8"/><path d="M15 7h6v6"/></svg></span><b>谁在赚钱</b><span class="faw-st"><i class="spin"></i><i class="ok"><svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg></i><span class="t1">读取中</span><span class="t2">就绪</span></span></div><ul class="faw-who"><li><em>1</em><span class="ic" style="background:#22C55E"><svg viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 19c0-8 6-14 14-14 0 8-6 14-14 14z"/><path d="M5 19l7-7"/></svg></span><span><b>轻食记</b><small>¥80万–150万</small></span></li><li><em>2</em><span class="ic" style="background:#8B5CF6"><svg viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="3" width="6" height="11" rx="3"/><path d="M5 11a7 7 0 0 0 14 0M12 18v3"/></svg></span><span><b>声浪口语</b><small>¥50万–100万</small></span></li><li><em>3</em><span class="ic" style="background:#0EA5E9"><svg viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14A8 8 0 1 1 10 4a6 6 0 0 0 10 10z"/></svg></span><span><b>眠岛</b><small>¥50万–80万</small></span></li></ul><p class="faw-ft">月收入估算</p></div>
<div class="faw-c"><div class="faw-h"><span class="faw-hi"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 4v11M7 10l5 5 5-5M5 20h14"/></svg></span><b>下载多少</b><span class="faw-st"><i class="spin"></i><i class="ok"><svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg></i><span class="t1">读取中</span><span class="t2">就绪</span></span></div><ul class="faw-bars"><li><span><b>轻食记</b><small>2万–5万</small></span><i><u style="--w:46%"></u></i></li><li><span><b>声浪口语</b><small>5万–10万</small></span><i><u style="--w:82%"></u></i></li><li><span><b>眠岛</b><small>5千–1万</small></span><i><u style="--w:22%"></u></i></li></ul><p class="faw-ft">月下载估算</p></div>
<div class="faw-c"><div class="faw-h"><span class="faw-hi"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 10v4h3l6 4V6L7 10z"/><path d="M17 9a4 4 0 0 1 0 6"/></svg></span><b>怎么投放</b><span class="faw-st"><i class="spin"></i><i class="ok"><svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg></i><span class="t1">读取中</span><span class="t2">就绪</span></span></div><div class="faw-ads"><img src="https://8pt.dev/api/media/73e8c0f2a8fe39d4eb44761d.webp" alt=""><img src="https://8pt.dev/api/media/bb261f7dbeedbc68bf1caabb.webp" alt=""><img src="https://8pt.dev/api/media/aa5e034b9c4678b60c3f1f52.webp" alt=""><span class="faw-play"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor"><path d="M8 5v14l11-7z"/></svg></span></div><p class="faw-ft">轻食记 · 3 条在投素材</p></div>
<div class="faw-c"><div class="faw-h"><span class="faw-hi"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="6" width="18" height="13" rx="2"/><path d="M3 10h18"/></svg></span><b>怎么收费</b><span class="faw-st"><i class="spin"></i><i class="ok"><svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg></i><span class="t1">读取中</span><span class="t2">就绪</span></span></div><div class="faw-phone"><div class="faw-ph"><div class="ph-notch"></div><div class="ph-scr"><b>解锁全部计划</b><span class="ph-sub">让目标更快达成</span><div class="ph-ring"><i></i><em>—</em></div><div class="ph-rows"><span></span><span></span><span></span></div><div class="ph-plan on">年度 · 示意价</div><div class="ph-plan">月度</div><div class="ph-btn">继续</div></div></div><span class="faw-pw">付费墙</span></div><p class="faw-ft">轻食记 · 完整流程</p></div>
</div></div></div></div>
.x-faw{--ink:#0E1116;--blue:#2F6BEA;--blue2:#5B8DF5;--muted:#667085;--line:#E6E8EE;--soft:#F3F5F9;--bg:#FAFAFB;font-family:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}.x-faw,.x-faw *{box-sizing:border-box}.x-faw a{color:inherit;text-decoration:none}.x-faw button{font:inherit;cursor:pointer}.x-faw{width:100%;max-width:1120px;margin:0 auto;text-align:left}.x-faw .faw-win{border-radius:22px;padding:0 8px 8px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.75);box-shadow:0 30px 80px -30px rgba(18,40,90,.45);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.x-faw .faw-bar{display:flex;align-items:center;gap:12px;height:40px;padding:0 10px}.x-faw .faw-dots{display:flex;gap:7px}.x-faw .faw-dots i{width:11px;height:11px;border-radius:50%;background:#FF5F57}.x-faw .faw-dots i:nth-child(2){background:#FEBC2E}.x-faw .faw-dots i:nth-child(3){background:#28C840}.x-faw .faw-url{margin:0 auto;font-size:11px;color:#667085;background:rgba(255,255,255,.8);padding:3px 14px;border-radius:6px}.x-faw .faw-tag{display:flex;align-items:center;gap:6px;font-size:11px;color:#475467}.x-faw .faw-tag i{width:7px;height:7px;border-radius:50%;background:var(--blue)}.x-faw .faw-body{background:#fff;border-radius:16px;padding:18px;background-image:radial-gradient(#E9ECF2 1px,transparent 1px);background-size:16px 16px}.x-faw .faw-top{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px}.x-faw .faw-q{display:flex;align-items:center;gap:10px;flex:0 1 380px;height:46px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#98A2B3;box-shadow:0 2px 6px rgba(16,24,40,.04)}.x-faw .faw-typed{color:var(--ink);font-size:15px}.x-faw .faw-caret{width:1.5px;height:18px;background:var(--ink);animation:faw-blink 1s steps(1) infinite}.x-faw .faw-prog{flex:0 1 300px;font-size:12px;color:#344054}.x-faw .faw-prog b{font-weight:600}.x-faw .faw-prog i{display:block;height:4px;border-radius:4px;background:#E6E8EE;margin-top:8px;overflow:hidden}.x-faw .faw-prog u{display:block;height:100%;width:0;background:var(--blue);border-radius:4px;transition:width .6s ease}.x-faw .faw-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;position:relative}.x-faw .faw-c{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;min-height:236px;box-shadow:0 1px 2px rgba(16,24,40,.04)}.x-faw .faw-h{display:flex;align-items:center;gap:8px;margin-bottom:12px}.x-faw .faw-hi{width:26px;height:26px;border-radius:7px;background:#EEF4FF;color:var(--blue);display:grid;place-items:center}.x-faw .faw-hi svg{width:15px;height:15px}.x-faw .faw-h b{font-size:13px;font-weight:600}.x-faw .faw-st{margin-left:auto;display:flex;white-space:nowrap;flex:none;align-items:center;gap:4px;font-size:11px;color:#475467;background:#F2F4F7;border-radius:999px;padding:3px 9px}.x-faw .faw-st .spin{width:9px;height:9px;border-radius:50%;border:1.5px solid #C7D2E4;border-top-color:var(--blue);animation:faw-spin .8s linear infinite}.x-faw .faw-st .ok,.x-faw .faw-st .t2{display:none}.x-faw .faw-c.done .faw-st{background:#EEF4FF;color:var(--blue)}.x-faw .faw-c.done .spin,.x-faw .faw-c.done .t1{display:none}.x-faw .faw-c.done .ok,.x-faw .faw-c.done .t2{display:inline-flex}.x-faw .faw-c>*:not(.faw-h){transition:opacity .5s ease,transform .5s ease}.x-faw .faw-c:not(.done)>*:not(.faw-h){opacity:.25;transform:translateY(4px)}.x-faw ul{list-style:none;margin:0;padding:0}.x-faw .faw-who{display:grid;gap:6px}.x-faw .faw-who li{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:10px}.x-faw .faw-who li:first-child{background:#F3F5F9}.x-faw .faw-who em{font-style:normal;font-size:11px;color:#98A2B3;width:10px}.x-faw .ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex:none}.x-faw .ic svg{width:15px;height:15px}.x-faw .faw-who li>span:not(.ic){display:flex;flex-direction:column;line-height:1.3}.x-faw .faw-who b{font-size:13px;font-weight:500}.x-faw .faw-who small,.x-faw .faw-bars small{font-size:11px;color:#667085}.x-faw .faw-bars{display:grid;gap:14px;padding-top:4px}.x-faw .faw-bars span{display:flex;justify-content:space-between;font-size:12px;margin-bottom:6px}.x-faw .faw-bars b{font-weight:500}.x-faw .faw-bars i{display:block;height:6px;border-radius:6px;background:#EEF1F6;overflow:hidden}.x-faw .faw-bars u{display:block;height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,#2F6BEA,#7FA6F8);transition:width 1s cubic-bezier(.2,.8,.2,1)}.x-faw .faw-c.done .faw-bars u{width:var(--w)}.x-faw .faw-ads{position:relative;height:132px;display:flex;justify-content:center;align-items:center}.x-faw .faw-ads img{position:absolute;width:72px;height:118px;object-fit:cover;border-radius:9px;border:2px solid #fff;box-shadow:0 8px 20px -8px rgba(0,0,0,.35)}.x-faw .faw-ads img:nth-child(1){transform:translateX(-52px) rotate(-8deg)}.x-faw .faw-ads img:nth-child(2){z-index:2;width:80px;height:128px}.x-faw .faw-ads img:nth-child(3){transform:translateX(52px) rotate(8deg)}.x-faw .faw-play{position:absolute;z-index:3;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;color:var(--ink)}.x-faw .faw-phone{position:relative;height:132px;display:flex;justify-content:center;overflow:hidden}.x-faw .faw-phone .faw-ph{transform:scale(.62);transform-origin:top center}.x-faw .faw-pw{position:absolute;right:10%;top:44px;font-size:10px;color:#fff;background:#0E1116;padding:3px 9px;border-radius:999px}.x-faw .faw-ft{margin:auto 0 0;padding-top:10px;font-size:11px;color:#667085}@keyframes faw-spin{to{transform:rotate(360deg)}}@keyframes faw-blink{50%{opacity:0}}@media (max-width:900px){.x-faw .faw-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.x-faw .faw-top{flex-direction:column;align-items:stretch;gap:12px}.x-faw .faw-q{flex:none}.x-faw .faw-prog{flex:none}.x-faw .faw-body{padding:12px}.x-faw .faw-grid{gap:10px}.x-faw .faw-c{padding:10px;min-height:210px}.x-faw .faw-st .t1,.x-faw .faw-c.done .faw-st .t2{display:none}.x-faw .faw-st{padding:4px 6px}.x-faw .faw-h b{font-size:12px;white-space:nowrap}.x-faw .faw-hi{width:22px;height:22px}.x-faw .faw-who li{padding:5px 4px;gap:6px}.x-faw .faw-who em{display:none}.x-faw .faw-ads img:nth-child(1){transform:translateX(-36px) rotate(-8deg)}.x-faw .faw-ads img:nth-child(3){transform:translateX(36px) rotate(8deg)}.x-faw .faw-ads img{width:58px;height:100px}.x-faw .faw-ads img:nth-child(2){width:64px;height:110px}.x-faw .faw-url{display:none}}@media (prefers-reduced-motion:reduce){.x-faw *{animation:none!important;transition:none!important}}.x-faw .faw-ph{position:relative;width:118px;height:236px;border-radius:22px;background:#0E1116;padding:5px;box-shadow:0 18px 40px -16px rgba(14,17,22,.45)}.x-faw .faw-ph .ph-notch{position:absolute;top:9px;left:50%;width:34px;height:8px;margin-left:-17px;border-radius:6px;background:#0E1116;z-index:2}.x-faw .faw-ph .ph-scr{height:100%;border-radius:18px;background:#fff;padding:22px 9px 9px;display:flex;flex-direction:column;align-items:center;gap:5px;overflow:hidden}.x-faw .faw-ph b{font-size:10px;font-weight:600;color:#0E1116}.x-faw .faw-ph .ph-sub{font-size:7px;color:#98A2B3}.x-faw .faw-ph .ph-ring{position:relative;width:46px;height:46px;border-radius:50%;background:conic-gradient(#2F6BEA 0 68%,#E6E8EE 0);display:grid;place-items:center;margin:3px 0}.x-faw .faw-ph .ph-ring i{position:absolute;inset:6px;border-radius:50%;background:#fff}.x-faw .faw-ph .ph-ring em{position:relative;font-style:normal;font-size:9px;font-weight:600}.x-faw .faw-ph .ph-rows{width:100%;display:grid;gap:3px}.x-faw .faw-ph .ph-rows span{height:5px;border-radius:3px;background:#EEF1F6}.x-faw .faw-ph .ph-rows span:nth-child(2){width:80%}.x-faw .faw-ph .ph-plan{width:100%;font-size:7px;padding:4px 6px;border:1px solid #E6E8EE;border-radius:6px;color:#475467}.x-faw .faw-ph .ph-plan.on{border-color:#2F6BEA;color:#2F6BEA;background:#EEF4FF}.x-faw .faw-ph .ph-btn{margin-top:auto;width:100%;text-align:center;font-size:8px;color:#fff;background:#0E1116;border-radius:7px;padding:5px 0}.x-faw{max-width:none;padding:56px 4%;background-image:radial-gradient(rgba(255,255,255,.22) 1.1px,transparent 1.4px);background-size:18px 18px;background-position:center}
(root) => {
  const cards = [...root.querySelectorAll('.faw-c')];
  const n = root.querySelector('.faw-n');
  const bar = root.querySelector('.faw-prog u');
  const typed = root.querySelector('.faw-typed');
  const words = ['卡路里计算', '冥想助眠', '背单词', '记账理财'];
  const reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
  let timers = [], w = 0;
  const set = (k) => { cards.forEach((c, i) => c.classList.toggle('done', i < k)); n.textContent = k; bar.style.width = (k * 25) + '%'; };
  const run = () => {
    timers.forEach(clearTimeout); timers = [];
    typed.textContent = words[w % words.length]; w++;
…
订阅 Builder 查看完整源码。查看价格

同一模板的其他组件

查看全部

Fading Quote Wall

Dual Plan Pricing

Idea Search Marquee

Ask AI Composer

Paywall Flow Strip

Rounded FAQ Stack

Top Apps Toggle Board

更多数据展示组件

查看全部

Dotted Globe Features

Release Spec Cards

Versus Compare Panel

Clip Library Window

Top Apps Toggle Board

Three Step Flow

Agent Chat Window

Mac File Window

更多组件

查看全部

Tabbed Logo Testimonial

Dot Matrix Glow Hero

Chaos Versus Ship Split

Segmented Pricing Tiers

Live Deploy Bento

Floating Tile CTA Banner

Aurora Prompt Hero

Integration Tile Grid

继续探索