I ran into a lot of these issue (especially onScroll vs. requestAnimationFrame) while creating a Path style scrollbar menu. It's amazing the performance gains you get when you start to model things like a game (animation loop vs event driven animations). Take a gander at the source for all the optimizations I did: https://github.com/Jetsetter/PathScrollbarMenu