first commit

This commit is contained in:
toom1996
2025-06-19 14:25:18 +08:00
commit 022e7a68c3
68 changed files with 10858 additions and 0 deletions

953
src/pages/index.astro Normal file
View File

@ -0,0 +1,953 @@
---
// 图片
import logo from '../../public/logo.png';
import avatar_1 from '../../public/avatar_1.jpg';
import avatar_2 from '../../public/avatar_2.jpg';
import avatar_3 from '../../public/avatar_3.jpg';
import huaweiLogo from '../../public/huawei-logo.png';
import vivoLogo from '../../public/vivo-logo.png';
import oppoLogo from '../../public/oppo-logo.png';
import xiaomiLogo from '../../public/xiaomi-logo.png';
import honorLogo from '../../public/honor-logo.png';
import oneplusLogo from '../../public/oneplus-logo.png';
import logoAll from '../../public/logoAll.png';
import bg from '../../public/bg.png';
import page_1 from '../../public/page_1.webp';
import page_2 from '../../public/page_2.webp';
import page_3 from '../../public/page_3.webp';
import page_4 from '../../public/page_4.webp';
import Layout from '../layouts/Layout.astro';
import { Image } from 'astro:assets';
import { APP_NAME, BASE_URL } from '../config/app';
import { formatDateTime } from '../../utils/date';
const title = `${APP_NAME} - 开启有声阅读新方式`;
const description = '知识回声是一款超实用学习应用,涵盖海量读物,热门有声书籍,让知识触手可及';
const keywords = '知识回声,知识回声官网,知识回声下载,知识回声官方,知识回声软件,知识回声下载,知识回声app';
const LDJSON = {
context: "https://ziyuan.baidu.com/contexts/cambrian.jsonld",
id: BASE_URL,
appid: "",
title: title,
image: BASE_URL + "/app-showcase.png",
pubDate: "2025-06-09T11:20:04",
updateDate: formatDateTime(),
description: description,
};
---
<Layout title={title} description={description} keywords={keywords}>
<section class="hero">
<div class="partner-bg">
<Image src={bg} alt="背景" class="bg-image" loading="eager" />
</div>
<div class="hero-content">
<h1>视听阅读,尽在这端</h1>
<p>一款超实用学习应用,涵盖海量读物,热门有声书籍,让知识触手可及。</p>
<div class="cta-buttons">
<button class="cta-primary">
<a rel="nofollow" title="立即下载" href="https://appgallery.huawei.com/app/C113905377" target="_blank">立即下载</a>
</button>
</div>
</div>
</section>
<section class="app-showcase" aria-label="应用界面展示">
<h2>我们能为你提供什么</h2>
<div class="app-intro">
<p>知识回声平台将图书与有声书两大板块有机结合,形成了独特的学习生态。用户可以根据自己的实际情况,灵活选择阅读图书或收听有声书。在拥有完整学习时间时,通过图书板块进行系统深入的学习;在时间零散时,借助有声书板块实现知识的碎片化吸收。这种不受时空限制的学习方式,让用户真正成为学习的主人,自由掌控学习的节奏与进度。知识回声平台正以其独特的魅力,引领用户进入一个全新的学习时代,让随时随地学习成为现实。</p>
</div>
<div class="app-showcase-grid">
<article class="app-showcase-item">
<div class="app-image">
<Image src={page_1} alt="优质课程界面展示" width="280" height="500" loading="lazy" />
</div>
<div class="app-overlay">
<h3>精品课程</h3>
<p>专业讲师精心打造的优质课程</p>
</div>
</article>
<article class="app-showcase-item">
<div class="app-image">
<Image src={page_2} alt="内容推荐界面展示" width="280" height="500" loading="lazy" />
</div>
<div class="app-overlay">
<h3>优质好书</h3>
<p>基于用户兴趣的智能内容推荐</p>
</div>
</article>
<article class="app-showcase-item">
<div class="app-image">
<Image src={page_3} alt="精美页面界面展示" width="280" height="500" loading="lazy" />
</div>
<div class="app-overlay">
<h3>精美页面</h3>
<p>沉浸式的阅读环境</p>
</div>
</article>
<article class="app-showcase-item">
<div class="app-image">
<Image src={page_4} alt="有声阅读界面展示" width="280" height="500" loading="lazy" />
</div>
<div class="app-overlay">
<h3>有声阅读</h3>
<p>方便快捷</p>
</div>
</article>
</div>
</section>
<section class="features" aria-label="产品特点">
<h2>为什么选择 { APP_NAME }</h2>
<div class="feature-grid">
<article class="feature-card">
<div class="feature-content">
<div class="feature-icon" aria-hidden="true">📚</div>
<div class="feature-text">
<h3>海量内容</h3>
<p>汇聚图书与讲堂两大核心板块。图书板块网罗海量精品,满足多样阅读偏好。无论是经典名著还是最新畅销书,都能在此找到您的阅读之选。</p>
</div>
</div>
</article>
<article class="feature-card">
<div class="feature-content">
<div class="feature-icon" aria-hidden="true">🔍</div>
<div class="feature-text">
<h3>智能推荐</h3>
<p>基于您的兴趣和学习习惯,提供个性化内容推荐。通过先进的算法,为您精选最适合的阅读内容,让每一次阅读都充满惊喜。</p>
</div>
</div>
</article>
<article class="feature-card">
<div class="feature-content">
<div class="feature-icon" aria-hidden="true">💻</div>
<div class="feature-text">
<h3>精品课程</h3>
<p>精选优质课程内容,涵盖多个领域。名师授课,系统学习,让您随时随地提升自我。课程内容持续更新,满足您的学习需求。</p>
</div>
</div>
</article>
<article class="feature-card">
<div class="feature-content">
<div class="feature-icon" aria-hidden="true">🚀</div>
<div class="feature-text">
<h3>界面简洁</h3>
<p>精心设计的用户界面,简洁而不简单。流畅的操作体验,让您专注于内容本身。支持多种阅读模式,打造舒适的阅读环境。</p>
</div>
</div>
</article>
</div>
</section>
<section class="content-preview partner-section" aria-label="合作伙伴">
<div class="partner-bg">
<Image src={logoAll} alt="背景" class="bg-image" />
</div>
<h2>合作伙伴</h2>
<div class="partner-intro">
<p>我们为华为、vivo和OPPO定制开发"厂商满意、用户喜欢"的软件,共同构建"便捷、安全可靠"的移动互联生态。</p>
</div>
<div class="partner-logos">
<article class="partner-logo huawei">
<div class="partner-icon">
<Image src={huaweiLogo} alt="华为公司logo" width="80" height="80" loading="lazy" />
</div>
<div class="partner-info">
<h3>华为</h3>
<p>战略合作伙伴</p>
</div>
</article>
<article class="partner-logo vivo">
<div class="partner-icon">
<Image src={vivoLogo} alt="vivo公司logo" width="80" height="80" loading="lazy" />
</div>
<div class="partner-info">
<h3>vivo</h3>
<p>核心合作伙伴</p>
</div>
</article>
<article class="partner-logo oppo">
<div class="partner-icon">
<Image src={oppoLogo} alt="OPPO公司logo" width="80" height="80" loading="lazy" />
</div>
<div class="partner-info">
<h3>OPPO</h3>
<p>战略合作伙伴</p>
</div>
</article>
<article class="partner-logo xiaomi">
<div class="partner-icon">
<Image src={xiaomiLogo} alt="小米公司logo" width="80" height="80" loading="lazy" />
</div>
<div class="partner-info">
<h3>小米</h3>
<p>重要合作伙伴</p>
</div>
</article>
<article class="partner-logo honor">
<div class="partner-icon">
<Image src={honorLogo} alt="荣耀公司logo" width="80" height="80" loading="lazy" />
</div>
<div class="partner-info">
<h3>荣耀</h3>
<p>战略合作伙伴</p>
</div>
</article>
<article class="partner-logo oneplus">
<div class="partner-icon">
<Image src={oneplusLogo} alt="一加公司logo" width="80" height="80" loading="lazy" />
</div>
<div class="partner-info">
<h3>一加</h3>
<p>重要合作伙伴</p>
</div>
</article>
</div>
</section>
<section class="user-experience" aria-label="用户体验">
<h2>用户真实体验</h2>
<div class="experience-grid">
<article class="experience-card">
<div class="user-info">
<Image src={avatar_1} alt="用户头像" width="50" height="50" loading="lazy" />
<div class="user-details">
<h3>李女士</h3>
<div class="rating">⭐⭐⭐⭐⭐</div>
</div>
</div>
<p>"界面设计非常简洁,操作很流畅。内容质量很高,每天都能学到新知识。"</p>
</article>
<article class="experience-card">
<div class="user-info">
<Image src={avatar_2} alt="用户头像" width="50" height="50" loading="lazy" />
<div class="user-details">
<h3>张先生</h3>
<div class="rating">⭐⭐⭐⭐⭐</div>
</div>
</div>
<p>"推荐的内容很符合我的兴趣,学习效率提高了很多。客服响应也很及时。"</p>
</article>
<article class="experience-card">
<div class="user-info">
<Image src={avatar_3} alt="用户头像" width="50" height="50" loading="lazy" />
<div class="user-details">
<h3>王同学</h3>
<div class="rating">⭐⭐⭐⭐⭐</div>
</div>
</div>
<p>"课程内容很专业,老师讲解很清晰。功能很实用。"</p>
</article>
</div>
</section>
</Layout>
<!-- 百度结构化数据 -->
<script type="application/ld+json" set:html={JSON.stringify({
"@context": LDJSON.context,
"@id": LDJSON.id,
"appid": LDJSON.appid,
"title": LDJSON.title,
"images": [LDJSON.image],
"pubDate": LDJSON.pubDate,
"Update": LDJSON.updateDate,
"description": LDJSON.description,
})}/>
<style>
.experience-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
gap: 2rem;
max-width: 1200px;
margin: 0 auto;
}
.experience-card {
background: white;
padding: 2rem;
border-radius: 16px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}
.user-info {
display: flex;
align-items: center;
gap: 1rem;
margin-bottom: 1.5rem;
}
.user-info img {
width: 50px;
height: 50px;
border-radius: 50%;
object-fit: cover;
}
.user-details h3 {
font-size: 1.2rem;
color: var(--text-primary);
margin-bottom: 0.25rem;
}
.rating {
color: #fbbf24;
}
.experience-card p {
color: var(--text-secondary);
line-height: 1.6;
}
.cta-buttons {
a {
text-decoration: none;
color: inherit;
}
}
.hero {
/* position: relative; */
height: 60vh;
min-height: 600px;
display: flex;
align-items: center;
overflow: hidden;
/* background: linear-gradient(135deg, var(--background-light), var(--background-off-white)); */
}
@keyframes pulse {
0% {
opacity: 0.5;
}
50% {
opacity: 0.8;
}
100% {
opacity: 0.5;
}
}
.hero-content {
max-width: 800px;
margin: 0 auto;
padding: 0 2rem;
text-align: center;
z-index: 1;
}
h1 {
font-size: 3.5rem;
font-weight: 700;
margin-bottom: 1rem;
/* background: linear-gradient(90deg, var(--primary-color), var(--accent-color)); */
background: black;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.hero-content p {
font-size: 1.2rem;
margin-bottom: 2rem;
color: var(--text-secondary);
}
.cta-buttons {
display: flex;
justify-content: center;
gap: 1rem;
}
.cta-primary {
background: black;
color: white;
border: none;
padding: 0.75rem 1.5rem;
border-radius: 8px;
font-weight: 600;
font-size: 1rem;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 4px 6px rgba(79, 70, 229, 0.1);
}
.cta-primary:hover {
transform: translateY(-2px);
box-shadow: 0 6px 12px rgba(79, 70, 229, 0.2);
}
section {
/* padding: 2rem 2rem; */
max-width: 1200px;
margin: 0 auto;
}
h2 {
font-size: 2.5rem;
text-align: center;
margin-bottom: 3rem;
color: var(--text-primary);
/* background: linear-gradient(90deg, var(--primary-color), var(--accent-color)); */
background: black;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.features {
padding: 4rem 0;
position: relative;
overflow: hidden;
}
.features-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
opacity: 0.05;
pointer-events: none;
}
.bg-image {
width: 100%;
height: 100%;
object-fit: cover;
/* transform: scale(1.2); */
}
.features h2 {
text-align: center;
font-size: 2.5rem;
margin-bottom: 3rem;
/* background: linear-gradient(135deg, var(--primary-color), var(--accent-color)); */
background: black;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
position: relative;
z-index: 1;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 2rem;
max-width: 1200px;
margin: 0 auto;
padding: 0 1rem;
position: relative;
z-index: 1;
}
.feature-card {
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
border-radius: 16px;
overflow: hidden;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
transition: transform 0.3s ease, box-shadow 0.3s ease;
border: 1px solid rgba(255, 255, 255, 0.2);
}
.feature-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
}
.feature-content {
display: flex;
gap: 2rem;
padding: 2.5rem;
align-items: flex-start;
}
.feature-icon {
font-size: 3rem;
flex-shrink: 0;
width: 80px;
height: 80px;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, var(--primary-light), var(--accent-light));
border-radius: 50%;
color: white;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
.feature-text {
flex: 1;
}
.feature-text h3 {
font-size: 1.5rem;
margin: 0 0 1rem;
color: var(--text-primary);
}
.feature-text p {
font-size: 1.1rem;
line-height: 1.6;
color: var(--text-secondary);
margin: 0;
}
@media (max-width: 1024px) {
.feature-grid {
grid-template-columns: 1fr;
max-width: 800px;
}
}
@media (max-width: 768px) {
.features {
padding: 3rem 0;
}
.features h2 {
font-size: 2rem;
margin-bottom: 2rem;
}
.feature-content {
flex-direction: column;
text-align: center;
padding: 2rem;
}
.feature-icon {
margin: 0 auto;
}
.feature-text h3 {
font-size: 1.3rem;
}
.feature-text p {
font-size: 1rem;
}
}
@media (max-width: 480px) {
.features {
padding: 2rem 0;
}
.features h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
}
.feature-content {
padding: 1.5rem;
}
.feature-icon {
width: 60px;
height: 60px;
font-size: 2rem;
}
.feature-text h3 {
font-size: 1.2rem;
}
}
.partner-section {
padding: 2rem 0;
position: relative;
overflow: hidden;
background: linear-gradient(135deg, rgba(var(--primary-rgb), 0.05), rgba(var(--accent-rgb), 0.05));
}
.partner-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
opacity: 0.03;
pointer-events: none;
}
.partner-section h2 {
text-align: center;
font-size: 2.5rem;
margin-bottom: 2rem;
background: black;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
position: relative;
z-index: 1;
}
.partner-intro, .app-intro {
max-width: 800px;
margin: 0 auto 3rem;
text-align: center;
padding: 0 1rem;
position: relative;
z-index: 1;
}
.partner-intro p, .app-intro p {
font-size: 0.8rem;
line-height: 1.8;
color: var(--text-secondary);
}
.partner-logos {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
max-width: 1200px;
margin: 0 auto;
padding: 0 1rem;
position: relative;
z-index: 1;
}
.partner-logo {
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
border-radius: 16px;
padding: 2rem;
display: flex;
align-items: center;
gap: 1.5rem;
transition: all 0.3s ease;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
border: 1px solid rgba(var(--primary-rgb), 0.1);
}
.partner-icon {
flex-shrink: 0;
width: 80px;
height: 80px;
display: flex;
align-items: center;
justify-content: center;
background: white;
border-radius: 12px;
box-shadow: 0 4px 15px rgba(var(--primary-rgb), 0.1);
transition: transform 0.3s ease;
}
.partner-logo:hover .partner-icon {
transform: scale(1.1);
}
.partner-icon img {
width: 60px;
height: 60px;
object-fit: contain;
}
.partner-info {
flex: 1;
}
.partner-info h3 {
font-size: 1.3rem;
margin: 0 0 0.5rem;
color: var(--text-primary);
transition: color 0.3s ease;
}
.partner-logo:hover .partner-info h3 {
color: var(--primary-color);
}
.partner-info p {
font-size: 0.9rem;
color: var(--text-secondary);
margin: 0;
}
@media (max-width: 768px) {
.partner-section {
padding: 3rem 0;
}
.partner-section h2 {
font-size: 2rem;
margin-bottom: 1rem;
}
.partner-intro {
margin-bottom: 2rem;
}
.partner-intro p {
font-size: 1rem;
}
.partner-logos {
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 1.5rem;
}
.partner-logo {
padding: 1.5rem;
}
.partner-icon {
width: 60px;
height: 60px;
}
.partner-icon img {
width: 45px;
height: 45px;
}
.partner-info h3 {
font-size: 1.2rem;
}
}
@media (max-width: 480px) {
.partner-section {
padding: 2rem 0;
}
.partner-section h2 {
font-size: 1.8rem;
}
.partner-logos {
grid-template-columns: 1fr;
}
.partner-logo {
padding: 1.25rem;
}
}
.app-showcase {
border-radius: 16px;
padding: 2rem 2rem;
margin: 2rem auto;
}
.app-showcase-desc {
font-size: 0.8rem;
line-height: 1.8;
color: var(--text-secondary);
}
.app-showcase-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 2rem;
max-width: 1200px;
margin: 0 auto;
}
.app-showcase-item {
position: relative;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
aspect-ratio: 9/16;
}
.app-showcase-item:hover {
transform: translateY(-10px);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}
.app-image {
width: 100%;
height: 100%;
position: relative;
}
.app-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.3s ease;
}
.app-showcase-item:hover .app-image img {
transform: scale(1.05);
}
.app-overlay {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 1.5rem;
background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
color: white;
transform: translateY(100%);
transition: transform 0.3s ease;
}
.app-showcase-item:hover .app-overlay {
transform: translateY(0);
}
.app-overlay h3 {
font-size: 1.25rem;
margin-bottom: 0.5rem;
color: white;
}
.app-overlay p {
font-size: 0.9rem;
opacity: 0.9;
margin: 0;
}
@media (max-width: 768px) {
.app-showcase-grid {
grid-template-columns: repeat(2, 1fr);
gap: 1rem;
}
.app-overlay {
transform: translateY(0);
background: linear-gradient(to top, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.6));
padding: 1rem;
}
.app-overlay h3 {
font-size: 1rem;
}
.app-overlay p {
font-size: 0.8rem;
}
}
@media (max-width: 480px) {
.app-showcase-grid {
grid-template-columns: 1fr;
}
}
.enterprise-section {
background: linear-gradient(135deg, var(--background-light), var(--background-off-white));
border-radius: 24px;
padding: 4rem 2rem;
margin: 2rem auto;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
position: relative;
overflow: hidden;
}
.enterprise-section::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: black;
}
.enterprise-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
max-width: 1200px;
margin: 0 auto;
}
.enterprise-card {
background: white;
border-radius: 16px;
overflow: hidden;
transition: all 0.3s ease;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
border: 1px solid rgba(0, 0, 0, 0.05);
}
.enterprise-card:hover {
transform: translateY(-10px);
box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
}
.enterprise-image {
position: relative;
width: 100%;
height: 250px;
overflow: hidden;
}
.enterprise-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.3s ease;
}
.enterprise-card:hover .enterprise-image img {
transform: scale(1.05);
}
.enterprise-content {
padding: 1.5rem;
}
.enterprise-content h3 {
color: var(--text-primary);
font-size: 1.5rem;
margin-bottom: 0.5rem;
}
.enterprise-content p {
color: var(--text-secondary);
line-height: 1.6;
margin: 0;
}
@media (max-width: 768px) {
.enterprise-grid {
grid-template-columns: repeat(2, 1fr);
gap: 1rem;
}
.enterprise-image {
height: 200px;
}
.enterprise-content {
padding: 1rem;
}
.enterprise-content h3 {
font-size: 1.2rem;
}
}
@media (max-width: 480px) {
.enterprise-grid {
grid-template-columns: 1fr;
}
.enterprise-image {
height: 180px;
}
.enterprise-card {
max-width: 400px;
margin: 0 auto;
}
}
</style>