大学生期末大作业:治愈系浪浪山小妖怪主题网站开发全记录

Pandas入门教程(十四):数据导出全攻略——CSV、Excel、JSON、HTML、Markdown 与大数据量优化 分析结果需要输出才能产生价值。本文系统讲解 Pandas 的导出能力,详解 CSV 编码处理、Excel 多 Sheet 与格式化、JSON 多种 orient、HTML/Markdown/LaTeX 文档输出,并针对百万行数据给出分块、压缩、Parquet 等优化方案,帮你按场景选对导出格式。 阅读详情

一、网站描述

浪浪山小妖怪主题网站是我为HTML+CSS+JavaScript课程设计的期末大作业,一个纯原生前端实现的响应式网站。网站以虚构的动画电影《浪浪山小妖怪》为主题,采用温暖治愈的配色方案,主色调为米白、浅棕和淡橙色系,营造出温馨舒适的视觉体验。

网站包含五个完整页面:

  1. 首页:展示电影简介和主要角色
  2. 电影介绍:详细介绍电影内容和主创团队
  3. 小妖怪图鉴:展示各种小妖怪角色及其属性
  4. 幕后故事:讲述电影制作过程和创作理念
  5. 关于我们:介绍工作室信息和联系方式

整个项目完全使用原生HTML5、CSS3和JavaScript实现,没有引入任何第三方库或框架,充分展示了基础前端技术的应用能力。

二、作品简介

这个项目源于我对治愈系动画的喜爱,我希望创建一个能够带给观众温暖感受的网站。浪浪山小妖怪的世界观设定为一个充满奇幻色彩但又不失温情的山中精灵世界,每个小妖怪都有独特的性格和能力。

技术层面,这个项目重点实现了:

  • 响应式布局:适配从手机到桌面各种屏幕尺寸
  • CSS动画效果:增强用户体验的交互元素
  • 原生JavaScript功能:如图片筛选、表单验证等
  • 语义化HTML结构:提高可访问性和SEO友好性

作为大学生课程作业,这个项目不仅满足基本要求,还额外实现了许多增强用户体验的细节,如平滑滚动、悬停效果等,体现了对前端开发的深入理解。

三、功能描述

1. 响应式布局

网站采用移动优先的设计理念,使用媒体查询(@media)实现响应式布局:

  • 桌面端:多栏布局,充分利用屏幕空间
  • 平板电脑:适当调整布局和字体大小
  • 手机端:简化为单栏布局,优化触摸操作

导航栏在移动设备上会转换为汉堡菜单,提升小屏幕下的可用性。

2. 交互功能

  • 图片筛选系统:在小妖怪图鉴页面,用户可以按类型筛选不同的小妖怪
  • 平滑滚动:点击导航链接时实现平滑滚动到对应区域
  • 表单验证:联系表单提供基本的客户端验证
  • 悬停效果:卡片、按钮等元素都有精心设计的悬停动画

3. 视觉设计

  • 配色方案:主色调#d4a373(淡橙棕)、辅色#5a4a3a(深棕)、背景色#fff9f0(米白)
  • 字体选择:使用系统默认的无衬线字体,确保可读性
  • 图标设计:使用SVG内联图标,保证各种分辨率下的清晰度
  • 阴影效果:柔和的阴影增强层次感

4. 性能优化

  • 所有图片使用SVG或Base64编码内联,减少HTTP请求
  • CSS和JavaScript都经过精简优化
  • 使用CSS动画代替JavaScript动画提高性能

四、作品演示

首页展示

首页包含导航栏、欢迎横幅、电影简介和小妖怪展示区。横幅区域采用渐变色背景,搭配简洁的文字介绍和召唤按钮。

小妖怪图鉴

这个页面展示了6种不同的小妖怪角色,每种都有独特的颜色和特征。用户可以点击顶部筛选按钮按类型查看不同的小妖怪。

幕后故事时间线

采用创新的时间线设计展示电影制作历程,左右交替的布局既美观又便于阅读。

五、关键代码展示

1. 响应式导航栏实现

<header>
    <div class="container">
        <nav>
            <div class="logo">
                <img src="data:image/svg+xml;base64,..." alt="浪浪山小妖怪">
                浪浪山小妖怪
            </div>
            <div class="menu-toggle" id="menuToggle">☰</div>
            <ul class="nav-links" id="navLinks">
                <li><a href="index.html">首页</a></li>
                <!-- 其他导航项 -->
            </ul>
        </nav>
    </div>
</header>

<style>
    @media (max-width: 768px) {
        .menu-toggle {
            display: block;
        }
        
        .nav-links {
            position: fixed;
            top: 70px;
            left: -100%;
            width: 100%;
            height: calc(100vh - 70px);
            background-color: #fff9f0;
            flex-direction: column;
            transition: left 0.3s;
        }
        
        .nav-links.active {
            left: 0;
        }
    }
</style>

<script>
    const menuToggle = document.getElementById('menuToggle');
    const navLinks = document.getElementById('navLinks');
    
    menuToggle.addEventListener('click', () => {
        navLinks.classList.toggle('active');
    });
</script>

2. 小妖怪筛选系统

// 获取所有筛选按钮和小妖怪卡片
const filterBtns = document.querySelectorAll('.filter-btn');
const characterCards = document.querySelectorAll('.character-card');

// 为每个按钮添加点击事件
filterBtns.forEach(btn => {
    btn.addEventListener('click', () => {
        // 更新按钮状态
        filterBtns.forEach(b => b.classList.remove('active'));
        btn.classList.add('active');
        
        const filter = btn.dataset.filter;
        
        // 筛选并显示符合条件的卡片
        characterCards.forEach(card => {
            if (filter === 'all' || card.dataset.category === filter) {
                card.style.display = 'block';
            } else {
                card.style.display = 'none';
            }
        });
    });
});

3. 时间线布局CSS

.story-timeline {
    position: relative;
    max-width: 800px;
    margin: 0 auto;
    padding: 40px 0;
}

.story-timeline::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: 2px;
    height: 100%;
    background-color: #d4a373;
    transform: translateX(-50%);
}

.timeline-item:nth-child(odd) {
    padding-right: calc(50% + 30px);
    text-align: right;
}

.timeline-item:nth-child(even) {
    padding-left: calc(50% + 30px);
    text-align: left;
}

/* 响应式调整 */
@media (max-width: 768px) {
    .story-timeline::before {
        left: 30px;
    }
    
    .timeline-item:nth-child(odd),
    .timeline-item:nth-child(even) {
        padding-left: 80px;
        padding-right: 0;
        text-align: left;
    }
}

4. 卡片悬停动画

.character-card {
    background-color: white;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    transition: all 0.3s;
}

.character-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}

.character-image img {
    transition: transform 0.5s;
}

.character-card:hover .character-image img {
    transform: scale(1.1);
}

六、开发心得

通过这个项目的开发,我深刻体会到原生Web技术的强大之处。虽然现在有各种前端框架,但掌握好HTML、CSS和JavaScript基础仍然是成为优秀前端开发者的关键。

几个重要的收获:

  1. CSS布局能力:通过这个项目,我熟练掌握了Flexbox和Grid布局,能够创建复杂的响应式设计
  2. JavaScript DOM操作:实现各种交互功能让我对原生DOM API有了更深理解
  3. 性能优化意识:学会了如何在不使用框架的情况下保证页面性能
  4. 设计思维:从配色到动效,全面考虑用户体验

这个项目也让我认识到,好的前端开发不仅仅是实现功能,更需要关注细节,比如:

  • 适当的过渡动画提升用户体验
  • 精心设计的交互反馈
  • 无障碍访问考虑
  • 跨浏览器兼容性

未来我计划为这个项目添加更多功能,比如:

  1. 小妖怪的3D旋转展示
  2. 用户收藏系统
  3. 更丰富的动画效果
  4. 夜间模式支持

这个浪浪山小妖怪网站虽然是我的课程作业,但我把它当作一个真正的产品来打造。希望通过这个项目,能够展示我对前端开发的热爱和专业能力。

RTX 6000 Pro Blackwell 踩坑实录:Qwen3.8-NVFP4 生成 HTML 表格半路截断?元凶竟不是显存 本文复盘了在RTX 6000 Pro Blackwell 96GB显卡上部署Qwen3.8-27B-NVFP4模型时,生成HTML表格中途截断的问题。经排查,主因非显存或上下文限制,而是五类易被忽视因素:1)Dify最大回复长度过小导致token截断;2)NVFP4量化精度不足致结构化输出断裂;3)接口超时、停止词误触发与流式渲染异常;4)HTML标签未闭合引发前端渲染假象;5)极低概率的上下文超限。建议27B级模型优先采用FP8权重,兼顾精度与性能,避免为省显存牺牲生成质量。 阅读详情

相关推荐

DAGGER vs 传统模仿学习:为什么数据聚合能提升模型性能?

本文深入对比了DAGGER与传统模仿学习,揭示了传统方法因“分布不匹配”导致性能下降的根源。DAGGER通过动态的**数据聚合**机制,在智能体自身策略产生的状态分布上收集专家数据,从根本上解决了误差累积问题,从而显著提升了模型在实际部署中的鲁棒性和性能。

weixin_29170327的博客 234

“AI+”毕业设计课题方向参考清单

多所高校的校企联合毕设已产出可落地的成果,例如上海交大与格兰富合作的“AI驱动液冷系统管理”项目,利用无监督LSTM和CNN-LSTM融合模型实现制冷剂剩余寿命预测,已获国际奖项。能力强/有读研意向:推荐具身智能或多智能体方向,或者带有“方法改进”性质的题目(如改进YOLO的小目标检测、GraphRAG的检索优化)。这是当前高校毕设题目最密集的交叉领域,优势在于公开数据集丰富(MIMIC、MedMNIST等),且RAG、多模态等技术已相对成熟,本科生可在3-4个月内做出可演示系统。

张晨光老师的播客 202

从零开始:用YOLOv8-Pose实现实时人体姿态检测(附完整代码)

本文提供了一份从零开始的完整实战指南,详细介绍了如何使用YOLOv8-Pose构建实时人体姿态检测系统。内容涵盖环境搭建、数据准备、模型训练与调优,以及高性能部署和进阶应用开发,并附有可直接运行的代码示例,帮助开发者快速掌握Pose Estimation技术并将其应用于实际项目。

h6i7j8的博客 621

大数据毕设全流程:从数据采集到ECharts大屏的五步链路

把大数据毕设拆成五步,讲清数据源调研,预处理,Hadoop技术栈,结果入库与ECharts大屏,附开题前门槛与算法亮点。

WEIXIN_JSJBSZDS的博客 513

【一 扣子客户案例合集】【 1.3 识典古籍基于扣子智能助手的古籍数字化全流程技术解析】

古籍数字化智能处理系统全流程解析 本文详细介绍了基于扣子智能助手的古籍数字化解决方案,核心技术包括: 多层级架构设计:采用"云-边-端"三层次架构,整合高精度扫描设备与AI处理模块,实现从物理古籍到结构化数据的全流程自动化。 智能图像处理:通过12道预处理工序(包括畸变校正、污渍去除和对比度增强)处理古籍图像,采用改进的EAST算法和ViT模型实现高精度文字检测与识别,准确率达98.7%。 NLP增强处理:结合Transformer-XL预训练模型和N-gram语言模型进行文本校正,基于

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1440

【RV1126/RV1109学习笔记】#基础篇#(2)基础入门使用

一、调试方式 1、串口调试 2、ADB调试 3、网络调试 二、基础外设使用 音频使用(aplay,arecord,amixer) 三、WIFI连接 四、屏幕背光控制

丨晋丨 1855

GPT Image 2 出的 UI 图如何转成 HTML 和可编辑 Figma

AI 生成的 UI 图,本身只是起点。用 Codex 或 Claude Code 把它变成 HTML,就有了能演示的页面;用 html.to.design 把 HTML 导回 Figma,就有了能沉淀的设计源文件;用 Codia 直接把图转成 Figma,则适合只要设计稿、追求速度的场景。三条链路互相补充,组合起来就形成了"图、代码、设计稿"之间的闭环。同时也要清楚它的边界:单张位图缺少精确数值,像素级还原目前还做不到稳定;图里的文字和图标需要人工把关。

JEECG官方博客 209

【教程4>第1章>第12节】通过Verilog读取txt格式数据进行测试并将结果导入到matlab

我们在verilog的testbench中,调用txt文件,将上述正弦样本数据作为测试激励输入到verilog模块中。通过这个方法,可以将一些较为复杂的数据导入到verilog中,进行FPGA数据处理模块的开发。即通过w方式打开一个新的txt文件,然后将verilog的输出保存到XY1.txt文件中。这个部分是txt文件的路径,实际使用时,修改为您自己的路径,或者将txt文件放在和我一样的路径中。这个是数据长度,matlab产生的txt多少长度,这个参数就修改为多少长度。这个txt就是保存这段数据的文件。

FPGA/MATLAB学习教程/源码/项目合作开发 1374

开源项目推荐:2027 高考志愿填报指北|开源单页 HTML 高报资料工具书

高考志愿填报信息量大、维度多,考生与家长往往面临资料零散、信息不对称、优质内容收费门槛高等问题。《2027 高考志愿填报指北》是雪人老师开源的高报笔记资料汇编,将 683 篇、280.5 万字的原创笔记整合为单页 HTML 电子书,覆盖专业、院校、城市、填报攻略四大板块。支持左侧折叠导航、快速跳转、浏览器原生 A4 打印,可在线阅读也可本地保存使用,采用 CC BY-NC 4.0 协议开源,非商业场景可自由传播改编,是高考志愿填报阶段实用的免费参考工具书。关键词:高考志愿填报;高报资料;开源电子书;

Admans的专栏 280

一句话看懂 vibing-steampunk

摘要: vibing-steampunk(vsp)是一个连接SAP ABAP开发工具(ADT)与AI编码代理(如Claude、GitHub Copilot)的桥梁,通过MCP协议实现自动化代码读写、调试和部署。它利用ADT API直接访问SAP系统,绕过传统GUI操作,支持ECC和S/4HANA等环境。工具提供包分析、依赖检查、LUW行为识别等功能,显著提升ABAP项目维护效率。其创新Hyperfocused模式和方法级编辑大幅降低token消耗,而上下文压缩技术则优化了AI对ABAP代码的理解能力,特别适

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 114

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。............

HowieXue 薛永浩的博客 1万+

Web端3D模型加载实战指南_Vue3_uni-app_HTML

很多同学一上来就问"uni-app 怎么加载 3D 模型",结果折腾三天发现方案根本不适用于自己的端。动手前先把下面这张表看完。结论:Web 端一律优先用 。 它是 Khronos 官方标准,被 three.js、model-viewer、微信小程序 XR-Frame 等所有主流方案原生支持,且是单文件,不涉及跨域、相对路径、资源丢失这些烦心事。免费模型资源站:Sketchfab、Poly Haven、Khronos glTF-Sample-Assets(官方示例模型,测试首选)。上线前必做的瘦身动作(一个

qq_19716091的博客 227

华为OD机试 - 字符串筛选排序 - 数组(Python/JS/C/C++ 双机位C卷 100分)

k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引,如果第k个最小ASCII码值的字母存在重复 则输出该字母的最小位置索引。输入一个由N个大小写字母组成的字符串,按照ASCII码值从小到大进行排序,查找字符串中第K个最小ASCII码值的字母(k>=1)。k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引,如果有重复字母则输出字母的最小位置索引。输出字符串中第k个最小ASCII码值的字母所在字符串的位置索引。第二行输入k ,k必须大于0 ,k可以大于输入字符串的长度。

学Java,找哪吒 1391

保姆级 | CTF Lemon:禁用右键/F12 怎么破?查看源码 + HTML 注释拿 flag

这道题表面上“右键被禁用、F12 被禁用”,看起来没法看源码,但这些限制都只是网页里的 JavaScript 搞的鬼。本文会讲清楚它是怎么禁用的、为什么这种限制不可靠,以及如何一键绕过拿到 flag。本题完整链路:页面用 JS 拦截右键/F12 → 用Ctrl+U或 curl 绕过 → 在 HTML 末尾注释里找到 flag。禁用右键(contextmenu)和 F12(keydown)都是前端 JS,靠实现;前端限制运行在用户浏览器,可被绕过,不可作为安全手段;绕过首选Ctrl+U。

YY888888_的博客 361

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

纯静态HTML项目文件打包成war包

纯静态HTML项目文件打包成war包

bjzhang75的博客 201

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

热榜上手|HyperFrames:写HTML出MP4

HeyGen 开源的 TypeScript 视频框架:把 HTML、CSS 动画直接渲染成确定性 MP4,专为 AI agent 批量出片设计,单周涨 5633 star。

mihuyang的博客 250

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

前端三剑客与 HTML 核心标签

前端是项目的门面。这篇文章把 HTML 的骨架作用、常用标签的专属属性、iframe 嵌套、锚点定位、表格与表单逐项拆开,最后落到「一个标签的属性能干什么」这个最实际的问题上。

2401_89953644的博客 238

OpenCode v2.2 Artifacts 实战:让 Agent 交付可预览 HTML、插件存储与发布治理

OpenCode v2.2.4 新增实验性的 Artifacts 能力,Agent 可以创建、读取、更新、删除并预览 HTML 或静态制品。本文从启用配置、四类核心工具、本地 Provider、插件存储、版本化更新、预览验收到安全与发布治理,给出一套把“代码生成”升级为“可查看、可验收、可追溯交付”的团队实践。

jerry764的博客 407

用VBA调用Python脚本抽取Word文档表格HTML

本文通过使用VBA调用Python脚本抽取Word文档中的表格的等价HTML表结构代码,演示了VBA调用Python脚本以及获取Python节本输出的方法。

yivifu的专栏 174

Nginx出向代理实战系列:安全部门只允许开放点对点SNAT、目标用CDN导致IP动态变化怎么办,网络通却返回HTML踩坑复盘

本文复盘了一次复杂的Nginx出向代理实战:面对CDN动态IP、安全策略限制及七层请求不规范三大难题,通过网络层放宽(支持域名解析)、应用层收紧(硬编码location+白名单逻辑)实现安全隔离;针对“通而不畅”问题,补全Host透传、标准Header与HTTPS配置,最终解决CDN返回HTML而非JSON的典型七层瓶颈。核心启示:网络通≠业务通,外网代理必须满足CDN鉴权要求,安全与业务需在约束中寻找最优解。

个人站点:https://www.heimajinpai.cn/ 499

HTML与CSS基础第十课—HTML的 div 和 span 标签

div和span都表示包住一块东西。但是,从使用场景上看,div一般包裹的是一组结构,而span一般包裹的是一个句子里的几个字。在真正的浏览器里,div和spandiv是块级元素,span是行内元素。什么是块级元素、什么是行内元素,这个概念后面会讲。divspan包住什么一组内容,例如一个标题加一段话一句话里的几个字自己占不占一块占一块,从新的一行开始不占一块,留在行内自己表示什么角色不表示不表示class写在开始标签里,用来给这些普通容器起名字。span同样可以加class,它和。

专注大前端领域,持续分享React、Vue、React-Native、Flutter、跨端等领域内容 413

【Chrome 开发者工具】如何使用 Network 下载网页中的 HTML 文件?

在日常学习或开发过程中,我们经常会遇到这样的情况:打开一个网页,里面嵌入了 HTML 格式的课件、幻灯片或者其他在线资源,但网页本身没有提供明显的下载按钮。如果直接使用浏览器的Ctrl + S保存网页,有时只能保存当前页面的 HTML,而无法准确获取嵌入其中的资源。那么,如何找到网页真正加载的 HTML 文件,并将其下载到本地呢?利用 Chrome 浏览器开发者工具(DevTools)中的 Network 面板,定位 HTML 资源并下载。整个过程无需安装额外软件,也不需要编写代码。

ShawnLiaoking的博客 282

静态站点优化实践:HTMLZIP 本地批量压缩工具使用记录

HTMLZIP是一款专为Windows x64设计的本地化HTML压缩工具,支持图形界面与命令行操作,无需安装、绿色便携。它通过解析器智能处理敏感标签(如<pre>、<textarea>),避免乱码与布局错乱;多级编码识别保障中文兼容性,输出同步更新字符集。支持递归批量压缩、原文件备份、自定义压缩策略(注释删除、空白折叠、内联资源压缩等),适用于静态站点优化、模板瘦身与离线归档。适合开发者在不上传数据的前提下高效压缩HTML文件,提升加载性能。

kingsley99的专栏 72

网页正文抽取 API:URL 与 HTML 优先级、字段与长度

GuGuData 网页可读内容抽取 API 使用 POST 接收 url 或 html,返回正文 HTML、纯文本和识别到的标题等元数据。两项至少一项为非空字符串,同时提供时 URL 优先;URL 无效时不会自动改用 HTML。接口不执行网页脚本,也不保证验证页或所有页面都可抽取。

DevOpenClub 专栏 167

HTML与CSS基础第九课—HTML的列表

ul是没有顺序的一组:顺序换一换,意思不变,例如一门课会用到的几样东西。ol是有顺序的一组:步骤、名次、操作先后。选哪一个,先问「把两条对调,意思变不变」。li是其中一条,必须放在ul或ol里面。ul和ol的直接子内容就是这些li。ulol他们的子元素一定是li。li中,也可以包裹一组列表。但是必须放在li内部。某一条下面还可以再套一层列表。内层的ul或ol写在那一条li里面,不要写在li的外面、和别的li平级。示例里「这一项先不学」属于「JavaScript」这一条,所以套在它的li里。内层用ul。

专注大前端领域,持续分享React、Vue、React-Native、Flutter、跨端等领域内容 199

HTML 语义化是什么?有什么好处?附常用语义标签讲解

HTML语义化是指使用具有明确含义的标签(如header、nav、main、footer)来构建页面结构,而非仅用div等无意义容器。其核心价值在于传达内容角色与用途,提升SEO、无障碍访问、代码可读性与维护性,且不影响样式定制。合理使用语义标签,避免滥用,是现代前端开发的重要规范。

2602_95057108的博客 245
上一篇: HTML+CSS+JavaScript网页设计与制作实例 -我的家乡(6个页面)
下一篇: 浪浪山小妖怪主题页面 - 首页 HTML+CSS 实现详解
WebDesign_Mu
博客等级 码龄2年 544粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值