mirror of
https://github.com/hectorqin/reader.git
synced 2026-11-10 21:11:08 +08:00
Paged mode - Restoring the position after the viewport height changes (address bar, keyboard, rotation) wrote max * fraction, which is almost never a column boundary: the screen showed half of one page and half of the next. Every paged scrollLeft write (restore, TTS follow, revealBlock, search) now goes through one page-snapping helper, and a scroll the browser makes on its own (focus, selection autoscroll) is snapped back. Highlights - localSectionId prefixed `xhtml:` from the format alone, so a windowed book whose sections have no prefix saved highlights that matched no chapter and were never drawn (and its progress failed to restore). The loaded document's own section ids are now the authority. - Highlight boxes are measured once; font size, margins, mode switch, resize or a late image moved the text under them. They are repainted after each. Mobile bottom bar - `.reader-route-host` had min-height: 100vh, which on a phone browser is taller than the visible viewport while the address bar shows, pushing the reader's bottom toolbar under it. Height is 100dvh with a 100vh fallback. - Notices are bottom-centre, exactly over 朗读/外观; in the reader they now stack above the bottom bar instead of swallowing the next tap. Tap to turn hides the toolbar - A tap on the outer thirds turns the page and puts a showing toolbar away; the middle third still toggles it. UI review scripts: page-turn-regression waits for login to finish rather than for the shelf (the app now opens on media); reader-regression shows the toolbar before pressing 下一章 after tap turns. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>