Что-то вроде этого должно быть тем, что вы ищете.
Можно легко добавить что-то, что определяет, в каком разделе страницы вы находитесь, прежде чем двигаться, если пользователь прокручивает мышью!
var navPoints = [
'#option1',
'#option2',
'#option3',
'#option4',
'#option5'
];
var currentPoint = 0;
var moveToElement = function() {
var elementTop = $(navPoints[currentPoint]).offset().top;
$("html:not(:animated),body:not(:animated)").delay( 300 ).animate({ scrollTop: elementTop-20}, 700 );
}
$(document).keyup(function(e) {
switch (e.which) {
case 38:
// Up Arrow
if(currentPoint > 0)
currentPoint--;
break;
case 40:
// Down Arrow
if(currentPoint < navPoints.length - 1)
currentPoint++;
break;
default:
// Some other key
return;
}
moveToElement();
});