Let's talk about animated window scrolling. It's whack to perform this animation by duration as it's commonly done. You might be scrolling a few pixels down in which case the scroll will take place at a snail's pace. You might be scrolling far down the page causing the page to whip by at warp speed.

It's best to perform this animation by scroll speed. That's what this jQuery plugin does.

By clicking the new few buttons you'll scroll from one to the next taking one second to perform each animation. Notice what an inconsistent experience this is.

That scroll was reasonable, but wait for the next one.

That last scroll was a lot faster than the first one, eh?

Now let's go through the same process scrolling by speed instead of time.

Another reasonable scroll.

For the long scroll we maintained a similar speed for a more consistent experience.

Check out scrollToBySpeed on Github.