Skip to content

Folio 2.9.2 — 超长篇滚动不再错位

Choose a tag to compare

@flulwh flulwh released this 14 Nov 09:58
· 52 commits to main since this release

桌面端 2.9.2:解除超长篇的滚动高度上限。

修复

  • Chromium 单个滚动容器的可滚动高度只有约 2^25 物理像素(125% 缩放下约 2680 万 CSS px)。整本书塞进一个 spacer 时,四十多万段的长篇在换大字号或收窄栏宽后会触顶,超出上限的段落全挤到同一个 y 上,滚动到底错位
  • 现在滚动容器只在书里开一个 800 万 px 的窗口:接近窗口边缘时整体换窗,以当前阅读位置为中心重新开窗,并反向补偿 scrollTop;逻辑偏移与屏幕上的段落位置都不变
  • 换窗与可视范围更新在同一帧用 flushSync 提交,不闪;.reader-scroll 关闭浏览器滚动锚定,避免二次补偿
  • 书首 / 书末、目录跳章、搜索跳转、痕迹跳转、进度条拖动、自动滚动、云端续章全部改按逻辑偏移计算
  • 自动滚动改用逻辑游标,滚到窗口底部会无缝换窗继续,不再误判「已到书末」

实测

  • 86.7 万段、总高约 4100 万 px 的压力样本:恢复 70% 位置落在第 607,040 段(误差 0px);End 到末段附近且进度 100%;Home 回到第 0 段
  • 连续滚到窗口底部:段落号 167k → 251k → 335k → 419k 单调推进
  • 目录跳第 801 章,顶部正是该章标题;相邻段间隙 ≤ 1px,无重叠
  • 普通长度书籍回归:恢复位置、Home / End、PageDown、目录跳章与 2.9.1 一致

兼容

  • 数据格式、IPC、书源规则不变,升级不丢书架 / 进度 / 痕迹
  • Android 客户端不受影响

产物

  • Folio-Setup-2.9.2.exe(推荐)
  • Folio-Portable-2.9.2.exe
  • Folio-2.9.2-win-x64.zip