It sounds like updateCurrentTranscriptItem() is being called on every playback time update without any limit, so multiple scroll events are triggered in quick succession and interrupt each other.
You can fix this by wrapping the call in a throttle() or debounce() function and adding behavior: "smooth" to keep the scroll consistent.
This kind of performance tuning is a common topic in front-end development — I’ve seen it come up often when mentoring new developers during our internship program at https://www.modsen-software.com/