Menu nawigacji pojedynczej strony - aktywny wskaźnik

Próbuję zaktualizować nawigację dla pojedynczej strony za pomocą punktów nawigacyjnych jQuery.

Chcę zaktualizować nawigację na podstawie bieżącej sekcji w widoku. Działa dobrze, gdy schodzisz za pomocą łączy nawigacyjnych. Mój problem polega na tym, że próbując przewinąć do sekcji nad bieżącą sekcją, aktywna kotwica znajduje się poniżej miejsca, w którym powinna się znajdować.

Proszę zobaczyć mojePróbny.

jQuery

$(document).ready(function(){
        $('section').waypoint(function(direction) {
          thisId = $(this).attr('id');
          $('ul li').each(function(){
            var secondaryID = $(this).attr('class');
            if  ( secondaryID == thisId )
                {
                    $('ul li').removeClass('active');
                    $(this).addClass('active');
                }
            });
    },{offset: '0'});   
}); 
$('a[href*=#]:not([href=#])').click(function() {
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') 
        || location.hostname == this.hostname) {

        var target = $(this.hash);
        target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
           if (target.length) {
             $('html,body').animate({
                 scrollTop: target.offset().top
            }, 500);
            return false;
        }
    }
});

HTML

<ul>
    <li class="test"><a href="#test"></a></li>
    <li class="test2"><a href="#test2"></a></li>
    <li class="test3"><a href="#test3"></a></li>
    <li class="test4"><a href="#test4"></a></li>
    <li class="test5"><a href="#test5"></a></li>
</ul>
<section id="test"></section>
<section id="test2"></section>
<section id="test3"></section>
<section id="test4"></section>
<section id="test5"></section>

Aktualizacja

Mam to do pracy przy użyciu dwóch funkcji punktów drogi z różnymi przesunięciami, ale nie jest to oczywiście najlepsze rozwiązanie.

http://jsfiddle.net/SJkmh/10/

Próbuję znaleźć sposób określania przesunięć w obrębie tej samej funkcji (w zależności od kierunku), użyłem zmiennej dla przesunięcia o wartościach (1 i -1), ale niestety używa ona tylko +1.

http://jsfiddle.net/SJkmh/13/

questionAnswers(1)

yourAnswerToTheQuestion