1. вешаешь обработчик клика на документ и фильтруешь в нем клик по ссылке, ведущей на якорь
http://learn.javascript.ru/bubbling-...-event-target
2. отменяешь (event.preventDeault) стандартное действие браузера - прокрутку к якорю
http://learn.javascript.ru/default-browser-action
3. определяешь вертикальное положение элемента, к которому необходимо прокрутить страницу
http://learn.javascript.ru/coordinates
4. плавно изменяешь document.scrollTop
http://learn.javascript.ru/js-animation#основы-анимации http://learn.javascript.ru/metrics-window