On queer.party (running 1.4.1) I often have a problem when scrolling on the timeline where the view will start repeatedly jumping up and down. I suspect it's something to do with images being dynamically added and removed based on some threshold which is causing a dynamic equilibrium to occur.
See https://www.youtube.com/watch?v=PArRfqp0o4k for a video capture of the behavior. At the beginning of the video it's already taking place; then starting at 0:02 I'm scrolling normally, and then the behavior reappears at about 0:12. While I'm scrolling manually the behavior doesn't occur but it seems to be when the scrolling ends at a particular edge condition that it happens.
I am running Safari 10.1.2 (build 12603.3.3) on macOS Sierra.
master (If you're a user, don't worry about this).Just experienced the same behavior on the 1.4.2 release candidate that Mastodon.Social is currently running.
Possibly related to (or a duplicate of) #3407?
The thing described in #3407 isn't quite the same as the thing described here. Your comments on that issue are certainly relevant to this one though. :)
Been scrolling through my federated timeline for 5 minutes and I could not reproduce this. However, I have a suspicion of what may be causing this: toggling between "rendered" and "unrendered" should not cause the position of the toots in the list to change (since we save the original height). But if one expands the content warnings the height changes (and we do not update it).
Basically, the issues that we need to fix are:
<Status /> in sync - which means to update it when:<Status /> and pass it as a prop to <StatusContent />. This needs to be optional, since <StatusContent /> is also rendered inside <BoostModal /> and <DetailedStatus /> (or implement this for them too).@nolanlawson Can you take a look at this too? What do you think?
I am experiencing the same issue. I can't tell exactly when it happens, but it seems to be related to the relative position of the toot that's at the border between visible and invisible toots.
Here are two screenshot showing the flickering class assignment in the web inspector, I hope it helps.


The potential fix was released as part of 1.4.3. Let us know if this still happens.
Still experiencing this on 1.4.3

(the actual motion was much faster, it was just captured at a slower framerate by my gif program)
I opened a separate issue for that jitter: #3776
I still see the original problem on 1.4.3 :/
I can also confirm that the original jumping back and forth still occurs on 1.4.3
Yeah, I'm still having this as well. :/ I managed to capture the DOM inspector this time. See https://youtu.be/BQKpc8QUqx0
FWIW I don't believe either this issue (jerky scrolling) or #3776 (jittery scrolling) can be solved without either:
Personally I would go with # 2. I think constantly adding elements to the top of the list when users are scrolling will always inevitably cause jerkiness; adding a "show more" button would mean it would jerk only once at most (and then, just a small amount).
New redesign idea based on discussion in this thread:
scrollTop is greater than 0, show the number of toots as a little "unread count" alert in the header. Then users can just click on the header to scroll to the top.This would prevent any jumpiness while also preserving the current behavior where you can watch the toots appear in real-time.
I really like that design idea.
I believe I'm seeing an incarnation of this (on 1.4.7) Should I open a separate issue?

Can you reproduce with the following steps?
It doesn't reproduce this way. I am able to reproduce the problem when randomly scrolling the home timeline when no new toots arrive. (seems to be more common when letting it scroll with inertia)
Ok, thanks for testing. We would need to reopen this then...
Most helpful comment
New redesign idea based on discussion in this thread:
scrollTopis greater than 0, show the number of toots as a little "unread count" alert in the header. Then users can just click on the header to scroll to the top.This would prevent any jumpiness while also preserving the current behavior where you can watch the toots appear in real-time.