inkjs
inkjs copied to clipboard
scrollDown malfunctions if it needs to scroll up instead
Describe the bug
The scrollDown method in main.js is supposed to scroll to the new text after making a choice. This normally does require, well, scrolling down. But it can sometimes require scrolling up instead, if there are enough choices that the top of the first choice is above the browser viewport. When this happens it tries to scroll upward forever, preventing the user from accessing anything lower on the page.
To Reproduce
Have a long enough list of choices and a high enough browser zoom that the top of the choice list is above the viewport. Click any choice.
Expected behavior
It should scroll up to the appropriate position, or at the very least not freeze up.
Ink files
N/A
Environment
- OS: Linux, though my game testers have reported it on several OSes and browsers
- Web browser version: Firefox, though see above
- inklecate version: ??
- inkjs version: 2.1.0
Additional context
The broken line is:
var duration = 300 + 300*dist/100;
This results in a negative duration when dist
is negative, which means the animation never ends. It should instead be Math.abs(dist)
.
Hi, issues about the main.js
generated by inky should be reported on the inky repository