Skip to content

阅读器排版控制

背景

沉浸式阅读中需要调整字体大小和行间距以适应不同阅读场景(白天/夜间、不同屏幕尺寸)。

实现方式

通过 epub.js 的 rendition.getContents() 获取已渲染的 Content 对象,调用 addStylesheetRules() 注入 font-sizeline-height CSS 规则。

注意:epub.js 的 addStylesheetRules 将对象 key 直接拼成 CSS 属性名,必须使用 kebab-case(如 font-sizeline-height),不能用驼峰写法。

控制面板

底部栏新增三个排版按钮,位于翻页按钮和目录选择器之间:

按钮功能参数范围
A⁻缩小字体每次 -10%70% ~ 200%
A⁺放大字体每次 +10%70% ~ 200%
切换行间距循环切换预设值1.4, 1.6, 1.8, 2.0, 2.4

设置保存在 localStorage(key: reader-font-sizereader-line-height),跨会话持久化。

关联文件

  • public/books/reader-money-dog.html
  • public/books/reader-rich-dad.html

金融知识学习笔记