Repository navigation
Folio 2.9.2 — 超长篇滚动不再错位
桌面端 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