Here is a jQuery solution, using the jQuery.animate function.
The function gives you the ability to change the animation time, as well as the selector on which the animation is being applied, so that you can scroll other elements, too.
/**
* Scroll to a given point on the page with animation
*
* @param {int} scrollValue - The top position to scroll to
* @param {int} [animationTime] - Speed of the animation (in milliseconds)
* @param {string} [selector] - Which element to scroll. By default, it is the html/body
*/
function animateScrollTo(scrollValue, animationTime, selector){
if(typeof animationTime === "undefined"){
animationTime = 520;
}
if(typeof selector === "undefined"){
selector = "html, body";
}
jQuery(selector).animate({scrollTop: scrollValue}, animationTime);
}