Repository navigation
ToastFish v3.4.0
ToastFish v3.4.0
本版做三件事:学习报告仪表盘的数据准确性(学术页修掉 11 处、概览页修掉 10 处,并新增「全部词库 / 当前词库」统计范围切换),整站排版与动效重做(仍是 Cyber Anime 深紫霓虹风格),以及深度学习风格的神经网络背景动画(跟随鼠标产生注意力光效)。
界面 · 排版与动效全部重做
-
导航:改为胶囊分段控件,选中项青→品红渐变 + 发光 + 下方圆点;品牌区改双行(主标题 +
CYBER ANIME STUDY CONSOLE · v3.0) -
页面骨架:每页统一「大标题 + 日文小字 + 一行说明 + 右上信息 chip」,正文按
01 / 02 / 03编号分区(青→品红渐变的细横线 + 分区日文注记) -
概览页 KPI:「累计学习词次」升为左侧 hero 大卡(64px 数字 + 扫光 + 迷你柱状 spark),其余 7 项为右侧 3×2 网格;数字全部改为滚动动画(0 → 目标值)
-
图表卡:玻璃质感卡片 + 顶部渐变发丝线 + hover 时四角 HUD 装饰与上浮阴影
-
动效:图表统一 900ms
easeOutQuart入场;切 tab 时整页淡入上浮(页面重挂载,入场动画重放);柱状图逐柱生长;prefers-reduced-motion下自动降级 -
响应式:1320 / 1080 / 760 三档断点,窄屏时 KPI 与图表网格自动单列,无横向溢出
背景 · 神经网络动画(跟随鼠标)
- 背景不再是静态星空,改为神经网络拓扑:节点缓慢漂移、按权重连线,并沿边不断有光脉冲「前向传播」
- 鼠标即注意力:光标 210px 内的节点被激活,出现青色光晕、放射状连线与高亮,并沿权重边向外发射脉冲;移开后逐渐冷却
- 分两层渲染:完整的网络在最底层(隔着图表玻璃卡微微透出),光标特效用独立画布叠加在内容之上(导航栏之下)
- 不影响使用:两层画布都不接收鼠标事件,透明度最高 0.46,文字与图表始终清晰可读;约 38fps 节流、页面切到后台时暂停、
prefers-reduced-motion下节点静止 - 顺带修掉一个长期隐藏的问题:此前的「星空背景」组件虽已注册,但从未被挂载,动画一帧都没跑过
光标动效 · 完全由鼠标速度驱动
- 光标附近的光晕、彗尾、涟漪、旋转扫描环与放射连线,强度与半径都随移动速度变化:轻轻移动只是一层很淡的微光,快速划过才拉出彗尾与扩散的涟漪
- 鼠标静止时完全归零 —— 光标处不会残留任何光晕或呼吸特效,只剩背景神经网络继续缓慢漂移,不干扰阅读
- 消失得极快 —— 光晕、涟漪、拖尾透明度统一跟着速度衰减:停手 ~80ms 光晕消失,~350ms 整层画布完全干净,不会拖着一团余晖
- 光晕整体更小更淡 —— 半径缩减约 28%(静止 ≈46px、快速划过 ≈139px),核心透明度 0.20 → 0.13、外圈 0.07 → 0.042,扫描环 / 放射线 / 涟漪 / 拖尾同步下调约 35%,不再压住 KPI 数字
- 涟漪与拖尾粒子数量各自收敛,长时间使用不会晃眼
- 背景跟随页面滚动产生视差 —— 上下滚动时神经网络整体跟着移动,但只走 35% 的距离,形成「背景比内容慢一拍」的纵深感;节点越界后从反向回卷,不会出现空白
- 每颗点自己的速度 —— 背景节点不再是整片同速漂移:每颗点有独立的速度倍率(约 0.25× ~ 2.2×,慢点占多数),快的点也更大更亮、与它相连的线段更实,于是同一屏里能读出前后层次(实测速度从原来 3
6 px/s 的窄带拉开到 1.453 px/s,静止画面里也能看出谁在动)
修复的界面 bug
| 问题 | 修复 |
|---|---|
| 学习日历被压成 2 列竖条、格子重叠溢出 | grid 布局改为 flex 列排,恢复 GitHub 风格 17 列 × 7 行 |
| 词库进度数字(1085 / 5473 · 19.8%)折成两行 | 数字列加宽并禁止换行 |
| 分区标题过小过暗 | 字号 11 → 13.5px,颜色提亮 |
| AI 短文页头部是空盒子 | 改用与其它页统一的 page-head |
| 整页只剩红字 Mount Failed | 根模板里的自定义元素写成自闭合导致 Vue 编译器错误 30,改为显式闭合 |
学术页 · 11 处数据问题全部修复
| # | 问题 | 修复 |
|---|------|------|
| 1 | 记忆半衰期 207.9 天是硬编码(正确率 >90% 时固定返回同一值) | 移除「半衰期」输出 —— 数据库只存每个词最近一次评分,间隔又是答对才扩张(生存偏差),现有数据无法拟合遗忘曲线 |
| 2 | 品红拟合虚线是假的(R²=0.900 为常量) | 删除拟合曲线与伪 R² 标注 |
| 3 | Bjork 散点 70% 堆在 x=200 竖线(storage 公式上限) | 横轴直接改用真实复习间隔(对数轴),纵轴为最近一次评分,tooltip 显示难度与状态 |
| 4 | <1天 桶永远显示 0% | 空桶不再画 0%,改为不绘制该数据点;桶判定修正为左闭右开 |
| 5 | 顽固词表恒为空(筛选条件与状态定义矛盾) | 口径改为「最近一次评分 < 80% 或尚未进入已学完状态」,并按难度/间隔排序取 Top 15 |
| 6 | 间隔扩张只有一根柱(按状态分组,已学词全是同一状态) | 改为按 SM2 难度档分组,双柱显示平均/中位间隔 |
| 7 | 只统计当前词库,切换词库后历史消失 | 默认统计全部词库的已学词(按 headWord 去重),页首可一键切回「当前词库」 |
| 8 | 难度分桶丢掉 difficulty = 1.0 的词 | 末桶闭合 |
| 9 | 合意难度区高亮错位(最高柱反而不亮) | 改为「与 0.15–0.35 区间有重叠即高亮」 |
| 10 | 周节律「最近 8 周」不连续(缺数据的周被跳过) | 以最后记录所在周的周一为锚,向前取连续 8 个自然周,缺数据留空 |
| 11 | 学习效率曲线贴顶无区分度(88 天里 59 天 100%) | 纵轴自动缩放(beginAtZero: false),tooltip 显示当日复习词数 |
现在学术页只呈现分布与相关性,并明确标注统计口径,不再输出任何推算出来的拟合参数。
概览页 · 10 处数据问题全部修复
| # | 问题 | 修复 |
|---|------|------|
| 1 | 「累计词汇增长」画的其实是累计学习词次(2847),全页没有一处显示已学单词数 | 标题改为「累计学习词次(含重复复习,非已学单词数)」,另加 KPI「已学单词数(全库去重)」 |
| 2 | 难度分布合意区高亮错位,且只有 6 档(学术页是 10 档) | 统一 10 档,高亮改由「与 0.15–0.35 有重叠」决定 |
| 3 | 同一页混口径:难度/间隔只算当前词库,其余是全库 | 分布图统一为全部词库已学词(与学术页一致) |
| 4 | 正确率趋势固定 0–100%,长期贴在 100% 附近成为直线 | 纵轴随数据自适应,并加「合意正确率 85%」虚线参考线 |
| 5 | 时间轴只画有记录的 88 天,实际跨 118 天,x 轴不等距 | 按自然日补齐,没学的天计 0 词、正确率断线 |
| 6 | 学习日历没有星期标签;会把「还没到」的日期画成漏学 | 增加星期列,未来日期改为虚线透明格,图例给出具体阈值 |
| 7 | 词库进度固定取前 8 个(14 个是 0),还显示英文表名 | 只列已开始的词库并显示中文名,标题标出「已开始 3 / 17」 |
| 8 | 进度用 Count 缓存列(会漂移) | 改用同库现算的已学数 |
| 9 | 一个饼图数据集模板从未渲染(死数据) | 删除 |
| 10 | 缺「当前连续天数」,无记录时最长连续会显示 1 | 新增当前连续天数,无记录时两者都为 0 |
其它
-
顽固词列表新增空状态提示(当前词库无顽固词时不再显示空表)
-
词库数据来源与许可说明(考研词频词库来自 exam-data/NETEMVocabulary,数据 CC BY-NC-SA 4.0,禁止商用)
-
版本号 3.3.1 → 3.4.0
安装
下载 ToastFish-v3.4.0-Setup.exe 直接覆盖安装即可,学习数据不会被覆盖或删除。
背景 · 节点速度
- 每颗点有独立速度:远的点几乎不动、近的点明显滑行(最快约 53 px/s),快的点带一段运动彗尾
- 背景网络层移到卡片之上(z-index 60),不再被卡片背景吃掉
背景 · 指针把节点推开
- 鼠标靠近时,光标 340px 内的节点会被推着让开,连线随两端位移一起散开、超过阈值自然断开,光标附近像被「按」出一个空腔
- 推开是每帧一小步的位移,力随距离衰减到 0:节点被推到半径边缘就停住,指针穿过或移开都不会弹回去,快速划过只是把它们拨开一下
- 幅度与范围:1 秒内距光标 112px 的节点就让开约 188px,影响半径 340px,空腔在 2~3 帧内就被掏空
- 速度是平滑过渡的:推开的速度本身有惯性(加速 0.18 / 减速 0.12),指针移开后节点不会突然定住,而是继续向外滑约 0.4 秒才停,观感不再是「急刹」
随机测试 · 只抽学过的词
- 修复:以前即使当前词库一个词都没学过,「随机单词测试 / 随机日语单词测试」也能开始,题目会从整本书里抽到从没学过的词。现在只抽
status != 0(学过)的词;一个都没学过时只弹一句「当前词库还没有学过的单词,先去学一轮再来测试吧」,不会开始测试 - 轮数仍是托盘「单词数量」;不写 SM2、不改数据库,只在开场导出一份 Excel 记录
- 五十音不受影响(它本来就没有「学过」的概念)
- 顺带修复:日语随机测试的题目原来是 UWP 通知,上面的 A/B/C 按钮点了没有任何反应(该流程从未订阅通知激活事件);现在改成与英语一致的应用内弹窗,鼠标可以直接点选