Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Janky infinite-scrolling on iOS Safari #13

Open
novacrazy opened this issue Feb 12, 2023 · 0 comments
Open

Janky infinite-scrolling on iOS Safari #13

novacrazy opened this issue Feb 12, 2023 · 0 comments
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@novacrazy
Copy link
Member

Infinite scrolling upwards works by offsetting the scroll position by the difference in height when the feed size changes, either from loading content or just HTML/CSS quirks. Works flawlessly on desktop browsers, however iOS Safari force-enables momentum/touch scrolling on all overflow: scroll since iOS 13. Attempting to modify the scroll position while there is still scroll momentum simply stops all momentum, causing it to look rather janky with the abrupt halt.

Back in the React version of the frontend, I had managed to get it working somehow using a combination of setTimeout and others to tweak the timing of when the scroll offset was applied. However, that trick doesn't seem to work with the SolidJS frontend, and may in fact be due to a change in iOS from 14/15/16. Unsure.

It may become necessary to fully emulate momentum scrolling on iOS with overflow: hidden and manual adjustment/animation.

Other ideas are welcome.

I do not know if smooth/momentum-scrolling on Android devices is affected similarly.

@novacrazy novacrazy added bug Something isn't working help wanted Extra attention is needed labels Feb 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant