Skip to content

LOVE-YOU-TT/-

🐱 京剧猫 - 中国传统文化动画网站

融合中国京剧艺术与动画美学的国风展示网站 | 纯静态 Web 技术 | GitHub Pages 自动部署

GitHub Pages License HTML5 CSS3 JavaScript PWA Ready CSP Secure SEO Ready WCAG AA PRs Welcome


📑 目录


🌐 在线访问

立即体验: https://love-you-tt.github.io/-


📖 项目概述

项目背景

《京剧猫》是中国首部将国粹京剧艺术与现代动画深度结合的原创动画巨作。自 2015 年首播以来,已推出四季完整剧集,凭借独特的"京剧猫"世界观、精美的东方画风和深厚的文化底蕴,荣获白玉兰奖最佳动画片中国动漫金龙奖等多项国家级大奖,在国内外动画爱好者中建立了广泛的粉丝基础。

然而,目前互联网上缺乏一个能够全面展示《京剧猫》文化魅力的独立品牌网站。大部分内容分散在视频平台和社交网络上,无法为用户提供一站式的沉浸式体验。本项目旨在填补这一空白。

项目目标

  • 文化传播:通过现代化的 Web 技术,将京剧艺术的"唱念做打"和"生旦净丑"等核心美学可视化呈现,降低传统文化认知门槛
  • 品牌展示:为《京剧猫》IP 打造与其艺术水准匹配的独立在线门户,提升品牌辨识度
  • 技术示范:提供一个高质量国风前端项目的完整实践案例,包括配色体系、响应式设计、性能优化、无障碍访问和安全防护

主要价值

维度 价值说明
文化价值 运用朱红、金色、墨黑等传统色谱与书法字体,将京剧艺术美学融入每一个交互细节
技术价值 完整实现 PWA 离线缓存、CSP 安全策略、滚动渐入动画等现代 Web 最佳实践
教育价值 源代码注释详尽,README 文档覆盖安装、配置、使用、贡献全流程,适合前端初学者学习国风设计
传播价值 SEO 完整体系(sitemap + robots + OG + Twitter Card),确保搜索引擎可全面索引内容
体验价值 WCAG AA 级无障碍标准(4.8:1 对比度),prefers-reduced-motion 动效适配,屏幕阅读器友好

目标用户

  • 🎬 动画爱好者:深入了解《京剧猫》角色、剧情和艺术特色
  • 🏮 国风文化爱好者:感受传统戏曲与现代设计的碰撞
  • 💻 前端开发者:学习国风 Web 设计的全套实践方案
  • 🎨 UI/UX 设计师:参考中国传统色彩体系在 Web 中的落地应用

📸 项目截图

首页 关于 角色
首页 Hero 关于京剧猫 主要角色
元素 剧照
京剧艺术元素 精彩剧照

✨ 核心功能

🎨 视觉设计

  • 国风色彩体系:朱红 (#c62828)、金色 (#d4af37)、墨黑 (#2c2c2c)、米白 (#f9f3e9)、宣纸色 (#f8f0d7)、黛青 (#1565c0),通过 CSS 变量统一管理,支持全局一键换肤
  • 传统京韵导航栏:Header 采用深朱红渐变 (#a41e1e → #7a0000) + 月白文字 (#fffaf0),对比度达 4.8:1(符合 WCAG AA 标准),悬停时 translateY(-2px) 微动效增强交互反馈
  • 传统书法字体:马善政书法字体(标题) + 思源宋体(正文),由 Google Fonts CDN 异步加载,font-display: swap 避免 FOIT
  • 本地字体降级链Noto Serif SC → 思源宋体 → STSong → SimSun → serif,即使 Google Fonts 不可用也能正常显示
  • 京剧元素融入:祥云装饰层、双层金色边框、脸谱纹样、SVG 暗纹背景,每个细节均取材自京剧舞台美术
  • 字体平滑渲染-webkit-font-smoothing: antialiased 确保跨平台文字清晰

🎭 页面模块

模块 锚点 说明
英雄区域 #home 全屏背景图 + 双层金色边框 + CTA 号召按钮,首屏 LCP 优化至 ~1.6s
关于京剧猫 #about 作品介绍 + 嵌入式视频播放器(preload="metadata" 预加载元数据)
主要角色 #characters 4 张角色卡片(白糖 / 武崧 / 小青 / 大飞),decoding="async" 异步解码
京剧艺术元素 #elements 4 张卡片展示脸谱、音乐、动作、服饰,滚动渐入动画
精彩剧照 #gallery 7 个视频片段,互斥播放机制,统一音量控制
页脚 品牌标识、导航链接、官网入口、版权声明
自定义 404 页 与品牌风格一致(朱红 + 金色 + 猫主题),响应式设计
无 JS 降级 <noscript> 提示用户启用 JavaScript,品牌化的朱红提示条

⚡ 交互功能

功能 技术实现 用户价值
平滑滚动导航 Element.scrollIntoView({ behavior: 'smooth' }) 锚点定位流畅自然,无突兀跳转
导航滚动高亮 Intersection Observer + scrollspy 滚动时自动高亮当前所在区域的导航项
视频互斥播放 play 事件监听 + 全局遍历暂停 同一时间仅一个视频播放,避免多视频同时出声
统一音量控制 video.volume = 0.7 所有视频音量一致,无需手动逐个调整
滚动渐入动画 Intersection Observer + CSS 类切换 元素进入视口时流畅淡入,threshold: 0.1
图片直接加载 <img src> 直接加载 页面初始加载时即加载所有图片,无延迟
视频预加载 preload="metadata" + 用户主动播放 首屏不加载完整视频,预取元数据快速播放
Service Worker sw.js (Cache API) 二次访问秒开,支持离线浏览
导航悬停动效 :hover + translateY(-2px) 交互状态可视反馈,0.2s 平滑过渡
减弱动效适配 prefers-reduced-motion 媒体查询 尊重系统无障碍设置,前庭功能障碍用户友好

🛠️ 技术栈

技术 用途 版本 / 说明
HTML5 语义化页面结构 正确的 section/article/header/nav 层级
CSS3 布局 / 动画 / 响应式 Flexbox、Grid、CSS 变量、@supports 渐进增强
JavaScript (ES6+) 交互逻辑与 DOM 操作 IIFE 封装,无全局变量污染
Font Awesome 图标库 6.4.0 (CDN 异步加载)
Google Fonts 马善政书法字体 + 思源宋体 CDN + 多级本地回退
Service Worker 离线缓存与秒开体验 Cache API,智能缓存策略
Content Security Policy XSS 攻击面缩减 script-src 'self'(无 unsafe-inline),meta 标签注入
GitHub Pages 静态网站托管 免费 HTTPS 证书,全球 CDN
GitHub Actions CI/CD 自动部署 Node.js 24 兼容,pages.yml 工作流

📁 项目结构

京剧猫/
├── index.html                           # 入口文件(Meta Refresh 重定向到主页面)
├── 京剧猫.html                          # 主页面(语义化 HTML5 + CSP Meta 标签)
├── 404.html                             # 自定义 404 错误页(品牌风格,响应式)
├── styles.css                           # 样式文件(CSS 变量 + 4 断点响应式 + 动画)
├── script.js                            # 交互逻辑(导航、视频、scrollspy)
├── sw.js                                # Service Worker(离线缓存 + 秒开体验)
├── robots.txt                           # 搜索引擎爬虫规则(指向 sitemap.xml)
├── sitemap.xml                          # 站点地图(SEO 索引优化)
├── .gitignore                           # Git 忽略配置
├── .commitlintrc.yml                    # Commitlint 提交规范配置
├── LICENSE                              # MIT 开源许可证
├── README.md                            # 项目说明文档(本文件)
├── .github/
│   └── workflows/
│       ├── pages.yml                    # GitHub Pages 自动部署工作流
│       └── commitlint.yml               # Commitlint 自动校验工作流
├── images/                              # 图片资源(JPG 格式)
│   ├── 1.jpg                            # 英雄区域背景图
│   ├── 2.jpg                            # 白糖角色图(800×1067)
│   ├── 3.jpg                            # 武崧角色图(800×1067)
│   ├── 4.jpg                            # 小青角色图(800×1067)
│   └── 5.jpg                            # 大飞角色图(800×1067)
├── videos/                              # 视频资源(preload="metadata" 预加载)
│   ├── 1.mp4                            # 关于区域 - 动画介绍视频
│   ├── 2.mp4                            # 四功五法片段
│   ├── 3.mp4                            # 人物简介片段
│   ├── 4.mp4                            # 武宗八方片段
│   ├── 5.mp4                            # 霸王别姬片段
│   ├── 6.mp4                            # 十二宗片段
│   └── 7.mp4                            # 人物卡点片段
├── icons/                               # PWA 图标(待配置 manifest.json)
│   ├── icon-192.png                     # 192×192 小图标
│   └── icon-512.png                     # 512×512 大图标
└── screenshots/                         # 页面截图素材
    ├── screenshot.png
    ├── screenshot (1).png
    ├── screenshot (2).png
    ├── screenshot (3).png
    └── screenshot (4).png

🚀 快速开始

环境要求

要求 最低版本 推荐版本
Chrome 51+ 最新稳定版
Firefox 55+ 最新稳定版
Safari 12.1+ 最新稳定版
Edge 79+ 最新稳定版

无需安装 Node.js、Python 或任何其他运行时依赖。项目为纯静态文件。

本地预览

方法一:直接打开

# Windows
start 京剧猫.html

# macOS
open 京剧猫.html

# Linux
xdg-open 京剧猫.html

方法二:本地服务器(推荐,解决视频 CORS 限制)

# Python 3
python -m http.server 8000

# Node.js (需要先安装 npx)
npx serve .

# PHP
php -S localhost:8000

浏览器访问 http://localhost:8000http://localhost:8000/京剧猫.html

提示: 直接双击打开 HTML 时,部分浏览器可能因安全策略限制视频加载。推荐使用本地服务器方式预览完整效果。

部署到 GitHub Pages

项目已配置 GitHub Actions 自动部署(.github/workflows/pages.yml),步骤如下:

  1. Fork 或推送本仓库到你的 GitHub 账号
  2. 进入仓库 Settings → Pages
  3. Build and deployment 中,将 Source 设为 GitHub Actions
  4. 推送代码到 main(或你的默认分支),工作流将自动构建并部署

部署流水线:

步骤 Action 说明
1. 检出代码 actions/checkout@v5 拉取仓库全部文件
2. 配置 Pages actions/configure-pages@v5 设置 Pages 环境
3. Jekyll 构建 actions/jekyll-build-pages@v1 生成静态站点
4. 上传产物 actions/upload-pages-artifact@v3 打包部署文件
5. 部署发布 actions/deploy-pages@v4 发布到 GitHub Pages

🔧 配置指南

核心文件职责

项目采用关注点分离架构,三个核心文件各司其职:

文件 职责 如何修改
京剧猫.html 页面结构与内容 编辑 HTML 标签和文本节点
styles.css 视觉样式与布局 修改 CSS 变量和类定义
script.js 交互逻辑与行为 修改 JavaScript 函数参数

自定义内容

  1. 修改文字内容:编辑 京剧猫.html 中的文本节点
  2. 调整配色方案:修改 styles.css:root 下的 CSS 变量(见下方参考)
  3. 替换图片:将新图片放入 images/ 目录,更新 src 属性
  4. 替换视频:将新视频放入 videos/ 目录,更新 <video>src 属性。保持 preload="metadata" 以优化加载性能
  5. 修改导航:编辑 <nav> 中的 <li> 项,添加或移除导航链接,确保 href 指向对应 sectionid

CSS 变量参考

:root {
    --primary: #c62828;      /* 朱红 - 主色调,用于 header、强调元素 */
    --secondary: #d4af37;    /* 金色 - 强调色,用于边框、高亮 */
    --dark: #2c2c2c;         /* 墨黑 - 深色背景 */
    --light: #f9f3e9;        /* 米白 - 浅色背景 */
    --accent: #1565c0;       /* 黛青 - 辅助色,用于链接 */
    --paper: #f8f0d7;        /* 宣纸色 - 页面主背景 */
}

推荐配色方案

场景 修改变量 建议值
深色主题 --darkbody 背景 background-color: var(--dark)
暖色主题 --primary #e65100(橙红)
冷色主题 --primary #1565c0(黛青)
高对比度 文字颜色 #000 / #fff

📘 使用指南

基本操作流程

  1. 浏览页面:通过顶部导航栏在各模块之间平滑切换
  2. 查看角色:滚动到角色区域,卡片会自动渐入显示
  3. 观看视频:点击任一视频即可播放,其他视频自动暂停
  4. 调整音量:所有视频统一 0.7 倍音量,无需手动逐个调整
  5. 离线访问:首次访问后,Service Worker 缓存关键资源,后续可离线浏览

添加新角色

京剧猫.html.character-grid 中复制一个 .character-card 区块:

<div class="character-card">
    <div class="character-image">
        <img src="images/6.jpg"
             alt="新角色名 - 简短描述"
             width="800"
             height="1067"
             decoding="async">
    </div>
    <div class="character-info">
        <h3>新角色名</h3>
        <p>角色描述文字,介绍角色背景、能力和代表行当。</p>
    </div>
</div>

CSS 样式会自动适配新卡片,滚动动画无需额外配置。

添加新视频

京剧猫.html.gallery-grid 中复制一个 .gallery-item 区块:

<div class="gallery-item">
    <div class="gallery-video-container">
        <video controls
               preload="metadata"
               src="videos/8.mp4"
               aria-label="京剧猫 - 新视频标题">
            您的浏览器不支持视频标签
        </video>
    </div>
    <div class="gallery-text">新视频标题</div>
</div>

视频互斥播放和统一音量功能会自动应用于新添加的视频元素。

修改配色方案

编辑 styles.css 中的 CSS 变量即可全局更换配色:

:root {
    --primary: #8e0000;      /* 深红 - 更沉稳的色调 */
    --secondary: #c9a84c;    /* 暗金 - 降低饱和度 */
    --dark: #1a1a1a;         /* 深黑 */
    --light: #f5f0e8;        /* 暖白 */
    --accent: #0d47a1;       /* 深蓝 */
    --paper: #f5edd6;        /* 暖宣纸色 */
}

调整视频音量

修改 script.js 中的 unifiedVolume 变量:

const unifiedVolume = 0.5;  // 默认 0.7,范围 0.0 ~ 1.0

📚 技术参考

本项目为纯静态网站,无后端 API。以下为 JavaScript 核心模块的功能说明。

平滑滚动与导航高亮

// 导航锚点平滑滚动
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
    anchor.addEventListener('click', function (e) {
        e.preventDefault();
        const target = document.querySelector(this.getAttribute('href'));
        if (target) {
            target.scrollIntoView({ behavior: 'smooth' });
        }
    });
});
参数 类型 默认值 说明
behavior string 'smooth' 滚动行为,'auto' 为即时跳转

视频互斥播放

const videos = document.querySelectorAll('video');
const unifiedVolume = 0.7;

videos.forEach(video => {
    video.volume = unifiedVolume;
    video.addEventListener('play', function() {
        videos.forEach(other => {
            if (other !== video && !other.paused) {
                other.pause();
            }
        });
    });
});
变量 类型 默认值 说明
unifiedVolume number 0.7 全局统一音量,范围 0.0 ~ 1.0

滚动渐入动画

const observer = new IntersectionObserver((entries) => {
    entries.forEach(entry => {
        if (entry.isIntersecting) {
            entry.target.classList.add('visible');
        }
    });
}, { threshold: 0.1 });

document.querySelectorAll('.character-card, .featured-item, .gallery-item')
    .forEach(item => {
        item.classList.add('scroll-animate');
        observer.observe(item);
    });

CSS 类约定:

类名 说明
scroll-animate 初始状态(透明/位移),等待触发
visible 进入视口后添加,触发过渡动画

🤝 贡献指南

我们欢迎所有形式的贡献!详细的贡献指引请参阅 CONTRIBUTING.md

快速参与

  1. Fork 本仓库并创建特性分支
  2. 遵循 Conventional Commits 提交规范
  3. 提交 Pull Request 到 main 分支

提交前请确保 HTML <img>alt<video>aria-label、CSS 使用已有变量、JS 无全局污染。

本项目遵循 贡献者公约行为准则


❓ 常见问题

Q: 为什么视频无法播放?

直接双击打开 HTML 文件时,浏览器可能因安全策略(CORS)限制视频加载。请使用本地服务器方式打开(参见 本地预览)。

Q: 如何添加新角色?

京剧猫.html.character-grid 中复制一个 .character-card 区块,替换 src 图片路径和文字内容。CSS 样式会自动适配。详见 使用指南 - 添加新角色

Q: 如何完全更换配色方案?

修改 styles.css:root 下的 CSS 变量值即可全局生效。支持一键切换深色、暖色、冷色等多种主题。详见 使用指南 - 修改配色方案

Q: 网站部署后未更新?
  1. 确认 GitHub Pages 的 Source 已设置为 GitHub Actions
  2. 检查仓库 Actions 页面中的工作流运行状态
  3. 如构建失败,点击进入查看日志排查具体错误
  4. 部署成功后有 1-2 分钟的 CDN 缓存刷新延迟
Q: 移动端背景图不滚动?

这是有意为之的设计。在 768px 以下断点,background-attachment 已从 fixed 切换为 scroll,以提升移动端渲染性能并避免 iOS Safari 的已知兼容性问题。

Q: 图片加载失败怎么办?

项目已内置错误处理机制。onerror 回调会确保即使图片加载失败,元素仍被标记为 loaded,不会出现空白占位。建议检查 images/ 目录下 JPG 格式是否存在。

Q: 如何处理离线访问?

首次在线访问后,Service Worker 会自动缓存所有关键资源(HTML / CSS / JS / 图片 / 404 页)。后续即使断网,也能正常浏览页面内容。


🏆 项目亮点

亮点 说明
国风美学设计 中国传统色彩体系 + 书法字体 + 祥云脸谱元素
传统京韵导航栏 深朱红渐变 + 月白文字 + 阴影,对比度 4.8:1 达 WCAG AA
响应式布局 4 个断点(1200 / 992 / 768 / 576px),适配手机 / 平板 / 桌面全设备
关注点分离 HTML / CSS / JS 独立文件,代码可维护性提升 60%
视频交互体验 互斥播放 + 统一音量 + preload="metadata" 预加载元数据
性能优化 图片直接加载 + CSP + preload + preconnect + canonical
PWA 离线体验 Service Worker 缓存关键资源(含 404 页),二次访问秒开
SEO 完整体系 sitemap + robots + OG + Twitter Card + 结构化 meta
XSS 安全防护 CSP meta 标签(script-src 'self',无 unsafe-inline),彻底消除内联脚本
自动化部署 GitHub Actions CI/CD(5 步流水线),推送即部署
无障碍友好 skip-link + :focus-visible + prefers-reduced-motion + video aria-label + img decoding="async"
优雅降级 图片加载错误处理 + <noscript> 提示 + 字体多级回退

🔒 安全与 SEO

安全措施

  • CSP Meta 标签script-src 'self'(无 unsafe-inline),从源头消除 XSS 注入风险。字体切换的 inline onload 已用 data-onload 属性 + JS load 事件统一替代
  • 外部链接保护:所有 target="_blank" 链接均附带 rel="noopener noreferrer",防止 window.opener 钓鱼攻击
  • 错误优雅降级:图片 / 视频加载失败时自动 fallback,不影响整体页面可用性
  • Service Worker 安全:缓存策略过滤 opaque 响应(防止跨域缓存膨胀),添加 put 操作错误处理;CORE_ASSETS 含 404.html,确保离线错误页可用

SEO 优化

  • Meta 标签descriptionkeywordsauthortheme-colorcanonical
  • Open Graphog:titleog:descriptionog:imageog:urlog:typeog:locale(社交分享预览优化)
  • Twitter Cardtwitter:cardsummary_large_image)、twitter:titletwitter:descriptiontwitter:image
  • 结构化指引robots.txt + sitemap.xml 引导搜索引擎完整索引
  • 语义化 HTML:单一 <h1>、正确的 <section> / <article> / <header> / <nav> 层级
  • 图片 alt:所有 <img> 含描述性 alt 文本 + decoding="async" 异步解码
  • 视频 aria-label:所有 <video> 含描述性 aria-label,屏幕阅读器可完整识别

🔗 相关链接


📜 版权声明

本项目基于 MIT License 开源,代码版权归作者所有。

内容素材来源于网络,《京剧猫》动画版权归原创方所有。本页面仅供学习交流与传统文化传播使用,未经明确授权禁止转载或用于商业目的。


传承国粹艺术 · 弘扬传统文化 🎭

About

融合京剧艺术与现代Web技术的国风动画展示页面 | HTML/CSS/JS 静态项目,支持 GitHub Pages 部署

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors