550 lines
17 KiB
HTML
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 & 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>
|