Loading content when moving around an infinite scroll list
The basics of scrolling
Scrolling (ideal)
As the viewport moves, new topics are loaded before the user notices missing topics.
It is important to load enough topics and early as the user scrolls.
Scrolling (waiting)
If the user is quick scrolling, the loading indicator will become visible until new topics appear.
Jumping + scrolling up
The table of contents allows a user to reach the middle of a flow board. That means that topics above and below the current viewport may be missing (and need to be loaded dynamically).
The following examples provide detail for the case of jumping to the middle of a flow board and scrolling up.
Considerations when filling the gap
When the gap is in the top 66% of the viewport (blue area), items (E and F) are added below the gap to complete the bottom part. That makes the gap to move up.
Scroll (after jump)
When the user lands in the middle of a discussion, gaps are generated.
Loading keeps the viewport consistent with the topic position (in this case, viewport is moved down as new topics are added)
Scroll (after jump)
The user perceives this as (note that transitions of topics moving away and new ones appearing help to orient the user):
When the gap is in the bottom 33% of the viewport, items (C, in the example) are added above the gap to complete the top part. That makes the gap to move down.
Beyond the gap (after jump)
When the user lands in the middle of a discussion, the user is allowed to scroll up past the gap.
If the gap is in the bottom 33%, the viewport won’t follow the newly added items (we considered the user passed the gap).