Files
fiveq-website-2026/smarthanzi/index.html
T
2026-08-24 15:37:08 +08:00

550 lines
17 KiB
HTML

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>智花识字 · 跟着教材,认字写字</title>
<meta name="description" content="智花识字(SmartHanzi):跟着小学教材认字写字,支持认读、描红笔顺与智能复习,让课本里的字真正学会。" />
<meta name="theme-color" content="#0B5F54" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@500;700;900&family=ZCOOL+XiaoWei&display=swap" rel="stylesheet" />
<style>
:root {
--ink: #16352f;
--ink-soft: #3d5c55;
--muted: #5f746e;
--paper: #f3f7f4;
--paper-deep: #e4efe9;
--brand: #0b5f54;
--brand-bright: #1a8a7a;
--accent: #c45c26;
--line: rgba(11, 95, 84, 0.14);
--white: #ffffff;
--shadow: 0 28px 60px rgba(14, 55, 48, 0.18);
--max: 1120px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
color: var(--ink);
background:
radial-gradient(1200px 600px at 10% -10%, rgba(26, 138, 122, 0.16), transparent 55%),
radial-gradient(900px 500px at 100% 0%, rgba(196, 92, 38, 0.08), transparent 50%),
linear-gradient(180deg, #f7faf8 0%, var(--paper) 40%, #eef5f1 100%);
font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;
line-height: 1.65;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.display {
font-family: "Noto Serif SC", "Songti SC", "STSong", serif;
font-weight: 900;
letter-spacing: 0.04em;
}
.soft-display {
font-family: "ZCOOL XiaoWei", "Noto Serif SC", serif;
}
.nav {
position: sticky;
top: 0;
z-index: 20;
backdrop-filter: blur(14px);
background: rgba(247, 250, 248, 0.82);
border-bottom: 1px solid transparent;
transition: border-color 0.25s ease, background 0.25s ease;
}
.nav.is-scrolled {
border-color: var(--line);
background: rgba(247, 250, 248, 0.94);
}
.nav-inner {
max-width: var(--max);
margin: 0 auto;
padding: 14px 20px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
.nav-brand {
display: flex;
align-items: baseline;
gap: 10px;
color: var(--brand);
}
.nav-brand strong {
font-family: "Noto Serif SC", serif;
font-size: 22px;
font-weight: 900;
}
.nav-brand span {
font-size: 13px;
color: var(--muted);
letter-spacing: 0.08em;
}
.nav-links {
display: flex;
align-items: center;
gap: 18px;
color: var(--ink-soft);
font-size: 14px;
}
.nav-links a:hover { color: var(--brand); }
/* —— Hero:首屏一整幅构图 —— */
.hero {
position: relative;
min-height: min(100vh, 920px);
overflow: hidden;
isolation: isolate;
}
.hero-bg {
position: absolute;
inset: 0;
z-index: -1;
background:
linear-gradient(115deg, rgba(11, 95, 84, 0.92) 0%, rgba(11, 95, 84, 0.78) 42%, rgba(18, 70, 62, 0.55) 100%),
url("./images/1.webp") center / cover no-repeat;
transform: scale(1.04);
animation: heroDrift 18s ease-in-out infinite alternate;
}
.hero-bg::after {
content: "";
position: absolute;
inset: 0;
background:
radial-gradient(circle at 78% 55%, transparent 0 18%, rgba(8, 40, 35, 0.35) 55%, rgba(6, 28, 24, 0.55) 100%),
linear-gradient(180deg, rgba(8, 40, 35, 0.08), rgba(8, 40, 35, 0.35));
}
.hero-grid {
position: absolute;
inset: 0;
z-index: -1;
opacity: 0.14;
background-image:
linear-gradient(rgba(255,255,255,0.35) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.35) 1px, transparent 1px);
background-size: 48px 48px;
mask-image: linear-gradient(90deg, transparent, #000 20%, #000 70%, transparent);
pointer-events: none;
}
.hero-inner {
max-width: var(--max);
margin: 0 auto;
padding: clamp(48px, 10vh, 96px) 20px clamp(56px, 9vh, 88px);
display: grid;
grid-template-columns: 1.05fr 0.95fr;
gap: clamp(28px, 5vw, 64px);
align-items: center;
min-height: inherit;
}
.hero-copy { color: #f5fffb; max-width: 560px; }
.hero-brand {
margin: 0 0 18px;
font-size: clamp(48px, 8vw, 84px);
line-height: 1.05;
color: #fff;
text-shadow: 0 8px 30px rgba(0, 0, 0, 0.22);
animation: riseIn 0.9s ease both;
}
.hero-title {
margin: 0 0 14px;
font-size: clamp(24px, 3.4vw, 36px);
font-weight: 700;
line-height: 1.25;
animation: riseIn 0.9s ease 0.08s both;
}
.hero-lead {
margin: 0 0 28px;
font-size: clamp(15px, 1.7vw, 18px);
line-height: 1.7;
color: rgba(245, 255, 251, 0.88);
max-width: 28em;
animation: riseIn 0.9s ease 0.16s both;
}
.hero-ctas {
display: flex;
flex-wrap: wrap;
gap: 12px;
animation: riseIn 0.9s ease 0.24s both;
}
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 48px;
padding: 0 22px;
border-radius: 999px;
font-size: 15px;
font-weight: 700;
border: 1px solid transparent;
transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary {
background: #fff;
color: var(--brand);
}
.btn-ghost {
background: rgba(255,255,255,0.08);
color: #fff;
border-color: rgba(255,255,255,0.35);
}
.hero-device {
justify-self: end;
width: min(100%, 320px);
animation: floatY 5.5s ease-in-out infinite, riseIn 1s ease 0.2s both;
filter: drop-shadow(var(--shadow));
}
.phone-frame {
border-radius: 36px;
padding: 10px;
background: linear-gradient(160deg, rgba(255,255,255,0.55), rgba(255,255,255,0.12));
border: 1px solid rgba(255,255,255,0.35);
}
.phone-frame img {
width: 100%;
border-radius: 28px;
aspect-ratio: 1242 / 2688;
object-fit: cover;
background: #0b3d36;
}
section {
max-width: var(--max);
margin: 0 auto;
padding: clamp(64px, 10vw, 104px) 20px;
}
.section-kicker {
margin: 0 0 10px;
color: var(--brand-bright);
font-size: 13px;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
}
.section-title {
margin: 0 0 12px;
font-size: clamp(28px, 4vw, 40px);
line-height: 1.2;
color: var(--ink);
}
.section-lead {
margin: 0;
max-width: 34em;
color: var(--muted);
font-size: 17px;
}
.feature {
display: grid;
grid-template-columns: 1fr 1fr;
gap: clamp(28px, 5vw, 64px);
align-items: center;
}
.feature.reverse .feature-media { order: -1; }
.feature-media {
position: relative;
border-radius: 28px;
overflow: hidden;
background: var(--paper-deep);
box-shadow: var(--shadow);
}
.feature-media img {
width: 100%;
aspect-ratio: 4 / 5;
object-fit: cover;
object-position: top center;
}
.feature-media::before {
content: "";
position: absolute;
inset: 0;
border: 1px solid rgba(255,255,255,0.4);
border-radius: inherit;
pointer-events: none;
mix-blend-mode: soft-light;
}
.feature-points {
margin: 22px 0 0;
padding: 0;
list-style: none;
display: grid;
gap: 12px;
}
.feature-points li {
position: relative;
padding-left: 22px;
color: var(--ink-soft);
}
.feature-points li::before {
content: "";
position: absolute;
left: 0;
top: 0.62em;
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--brand-bright);
}
.reveal {
opacity: 0;
transform: translateY(22px);
transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.is-in {
opacity: 1;
transform: none;
}
.cta-band {
margin: 0 20px clamp(48px, 8vw, 80px);
max-width: var(--max);
margin-left: auto;
margin-right: auto;
border-radius: 28px;
padding: clamp(36px, 6vw, 56px);
background:
linear-gradient(135deg, rgba(11, 95, 84, 0.96), rgba(18, 90, 78, 0.9)),
url("./images/6.webp") right center / cover no-repeat;
color: #f5fffb;
text-align: center;
box-shadow: var(--shadow);
}
.cta-band h2 {
margin: 0 0 10px;
font-size: clamp(28px, 4vw, 40px);
}
.cta-band p {
margin: 0 auto 24px;
max-width: 28em;
color: rgba(245, 255, 251, 0.88);
}
.cta-band .btn-primary { min-width: 160px; }
footer {
border-top: 1px solid var(--line);
background: rgba(255,255,255,0.55);
}
.footer-inner {
max-width: var(--max);
margin: 0 auto;
padding: 36px 20px 48px;
display: grid;
gap: 20px;
}
.footer-brand {
font-family: "Noto Serif SC", serif;
font-size: 22px;
font-weight: 900;
color: var(--brand);
}
.footer-links {
display: flex;
flex-wrap: wrap;
gap: 10px 18px;
font-size: 14px;
color: var(--muted);
}
.footer-links a:hover { color: var(--brand); }
.footer-meta {
font-size: 13px;
color: var(--muted);
}
@keyframes riseIn {
from { opacity: 0; transform: translateY(18px); }
to { opacity: 1; transform: none; }
}
@keyframes floatY {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
@keyframes heroDrift {
from { transform: scale(1.04) translate3d(0, 0, 0); }
to { transform: scale(1.08) translate3d(-1.2%, 1%, 0); }
}
@media (max-width: 860px) {
.nav-links .hide-sm { display: none; }
.hero-inner {
grid-template-columns: 1fr;
padding-top: 36px;
min-height: auto;
}
.hero-copy { text-align: left; }
.hero-device {
justify-self: center;
width: min(72vw, 280px);
margin-top: 8px;
}
.feature,
.feature.reverse {
grid-template-columns: 1fr;
}
.feature.reverse .feature-media { order: 0; }
.feature-media img { aspect-ratio: 16 / 11; object-position: top center; }
}
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation: none !important;
transition: none !important;
}
.reveal { opacity: 1; transform: none; }
}
</style>
</head>
<body>
<header class="nav" id="topNav">
<div class="nav-inner">
<a class="nav-brand" href="#top" aria-label="智花识字首页">
<strong>智花识字</strong>
<span class="hide-sm">SmartHanzi</span>
</a>
<nav class="nav-links" aria-label="页面导航">
<a class="hide-sm" href="#learn">跟着教材</a>
<a class="hide-sm" href="#write">认写练习</a>
<a class="hide-sm" href="#review">智能复习</a>
<a href="#download">获取应用</a>
</nav>
</div>
</header>
<main id="top">
<section class="hero" aria-label="智花识字首页介绍">
<div class="hero-bg" aria-hidden="true"></div>
<div class="hero-grid" aria-hidden="true"></div>
<div class="hero-inner">
<div class="hero-copy">
<h1 class="hero-brand display">智花识字</h1>
<p class="hero-title soft-display">跟着教材,认字写字</p>
<p class="hero-lead">为小学阶段打造的识字写字应用:认读、描红笔顺与智能复习连成一条学习路径,让课本里的字真正学会。</p>
<div class="hero-ctas">
<a class="btn btn-primary" href="#download">获取应用</a>
<a class="btn btn-ghost" href="#learn">了解功能</a>
</div>
</div>
<div class="hero-device" aria-hidden="true">
<div class="phone-frame">
<img src="./images/2.webp" alt="" width="320" height="692" />
</div>
</div>
</div>
</section>
<section id="learn" class="feature reveal">
<div>
<p class="section-kicker">FOLLOW THE TEXTBOOK</p>
<h2 class="section-title display">跟着教材学</h2>
<p class="section-lead">按所选教材分册组织本课生字,学习路径清晰,家长与孩子都知道今天练什么。</p>
<ul class="feature-points">
<li>选择教材与课节,聚焦本课要求会认、会写的字</li>
<li>「认一认」熟悉字形、字音与含义</li>
<li>学习进度可同步,换设备也能接着练</li>
</ul>
</div>
<div class="feature-media">
<img src="./images/3.webp" alt="智花识字教材学习界面截图" loading="lazy" />
</div>
</section>
<section id="write" class="feature reverse reveal">
<div>
<p class="section-kicker">READ &amp; WRITE</p>
<h2 class="section-title display">认字 · 写字</h2>
<p class="section-lead">会认与会写分轨练习:看清楚、写规范,再把笔顺记牢。</p>
<ul class="feature-points">
<li>「写一写」沿淡色字模描红,关注笔画顺序</li>
<li>一键播放笔顺演示,看清每一笔怎么写</li>
<li>写完即时反馈,巩固正确书写习惯</li>
</ul>
</div>
<div class="feature-media">
<img src="./images/7.webp" alt="智花识字写字描红界面截图" loading="lazy" />
</div>
</section>
<section id="review" class="feature reveal">
<div>
<p class="section-kicker">SMART REVIEW</p>
<h2 class="section-title display">智能复习</h2>
<p class="section-lead">识字、写字分轨安排复习,按间隔提醒待练的字,减少遗忘。</p>
<ul class="feature-points">
<li>到期字进入复习,练过的字进入学习进度</li>
<li>可标熟,减少重复打扰</li>
<li>本课字与待复习字可组合练习</li>
</ul>
</div>
<div class="feature-media">
<img src="./images/6.webp" alt="智花识字复习与学习进度界面截图" loading="lazy" />
</div>
</section>
<section id="download" class="cta-band reveal">
<h2 class="display">把课本里的字,变成自己的字</h2>
<p>智花识字现已上线 iOS / Android。下载后选择教材,从本课认读与写字开始。</p>
<a class="btn btn-primary" href="https://apps.apple.com/search?term=%E6%99%BA%E8%8A%B1%E8%AF%86%E5%AD%97" rel="noopener noreferrer">前往 App Store</a>
</section>
</main>
<footer>
<div class="footer-inner">
<div class="footer-brand">智花识字</div>
<div class="footer-links">
<a href="./service-agreement.html">服务协议</a>
<a href="./privacy-policy.html">隐私协议</a>
<a href="./children-privacy-guide.html">儿童个人信息保护指南</a>
<a href="./personal-information-collection-list.html">个人信息收集清单</a>
<a href="./third-party-sharing-list.html">第三方信息共享清单</a>
</div>
<div class="footer-meta">
<div>产品名称:智花识字(SmartHanzi)</div>
<div>运营主体:五道题(北京)科技有限公司</div>
<div>© <span id="year"></span> 五道题(北京)科技有限公司</div>
</div>
</div>
</footer>
<script>
(function () {
var nav = document.getElementById('topNav');
var year = document.getElementById('year');
if (year) year.textContent = String(new Date().getFullYear());
function onScroll() {
if (!nav) return;
nav.classList.toggle('is-scrolled', window.scrollY > 8);
}
onScroll();
window.addEventListener('scroll', onScroll, { passive: true });
var nodes = document.querySelectorAll('.reveal');
if (!('IntersectionObserver' in window)) {
nodes.forEach(function (n) { n.classList.add('is-in'); });
return;
}
var io = new IntersectionObserver(function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
entry.target.classList.add('is-in');
io.unobserve(entry.target);
}
});
}, { threshold: 0.18, rootMargin: '0px 0px -8% 0px' });
nodes.forEach(function (n) { io.observe(n); });
})();
</script>
</body>
</html>