Skip to content

Fix navigation with proper fraction#1128

Open
MrRogerHuang wants to merge 10 commits intofuturepress:masterfrom
MrMYHuang:FixNavigationWithFractional
Open

Fix navigation with proper fraction#1128
MrRogerHuang wants to merge 10 commits intofuturepress:masterfrom
MrMYHuang:FixNavigationWithFractional

Conversation

@MrRogerHuang
Copy link
Copy Markdown

These two lines could have numbers between 0 and 1 (proper fractions) during navigations:

this.scrollLeft = this.container.scrollLeft;

this.scrollTop = this.container.scrollTop;

Even if an ePub section (e.g. a cover page or a table of content page) has only one page, a proper fraction causes prev() or next() can't correct go to the previous or next section, because these condition tests are true:

this.scrollLeft = this.container.scrollLeft;

this.scrollTop = this.container.scrollTop;

A browser inspector confirms the problem (this.container.scrollLeft has a value 0.8000...):

In user perspective, user has to execute prev() or next() twice to correctly go to the previous or next section!

This pull request fixes only two navigation cases (depending on section layouts), not all navigation cases, because my tested ePub files can only triggers these two cases.

hiive pushed a commit to hiive/epub.js that referenced this pull request Apr 6, 2026
…urepress#1128, futurepress#1308, futurepress#1336, futurepress#1300

- futurepress#1129: Fix locationOf crash on empty ranges — use parentElement fallback
- futurepress#1128: Fix fractional scrollLeft causing stuck navigation — Math.floor
- futurepress#1308: Fix float rounding in vertical bottom detection (2199.99 vs 2200)
- futurepress#1336: Fix can't turn pages after resize — ViewMap cleanup, always destroy
- futurepress#1300: Remove outdated WebKit range workaround for hash links
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants