做一个 PDF 阅读器之后,我重新理解了「位置」 永久链接
桌上的平板电脑、笔记本电脑与咖啡

构建手记

做一个 PDF 阅读器之后,我重新理解了「位置」

阅读位置不是页码,而是一段连续体验的锚点。

“打开侧栏不能让正文跳一下”看起来是一条微小的要求,真正实现时却牵动了布局、缩放、滚动和状态恢复。

页码不等于位置

同一页里也有阅读进度。只记录页码,恢复后仍然可能让人失去上下文。

变化前先保存锚点

布局变化之前,保存视口中心所对应的文档坐标;布局完成以后,再把这个坐标映射回新的视口。

两条交互路径

侧栏开关是离散变化,分隔线拖拽是连续变化。它们应该共享“保持锚点”的原则,但不应该共享完全相同的更新频率。

来自开放网络的回应

引用、喜欢、转发和站外回复会通过 Webmention 回到这里。

接收与展示代码已经就绪,注册正式域名后即可开始收集回应。

评论

评论接入已准备好,补充 GitHub Discussions 配置后即可开放。

需要一个公开 GitHub 仓库,并为它启用 Discussions、安装 Giscus App、选择评论分类。