mely: Javascript fehler

Beitrag lesen

Hallo,

ich habe folgendes Problem: Wenn ich die Seite durchscrolle, ändert sich die Farbe von dem Link im Menü. Äbhängig wo man sich befindet bleibt der Menüpunkt grün. Alle anderen sind grau. Das gleiche soll auch passieren wenn man auf das Menüpunkt klickt. Also die Aktuelle link wird grün und alle anderen bleiben grau. Klickt man auf ein anderen Menüpunkt wird er grün und alle anderen wieder grau. In meinem script.js(ganz unten im quelltext) ist wahrschinlich was falsches eingegeben, da nicht bei jedes Menüklick bleib er grün. Ich habe die Fehler viel gesucht, aber nicht gefunden. Kann mir jemand helfen. Danke im voraus Linkbeschreibung

Das ist ein Teil von script.js und ich glaube die Fehler ist hier irgendwo. Kann das sein?

$('nav a[href^="#"]').on('click', function (e) {
                        e.preventDefault();
                        $(document).off("scroll");
 
                       $('nav a').each(function () {
                                $(this).removeClass('active');
                                 $("nav").removeClass("navTest");
                        })
                        $(this).addClass('active');
 
                        var target = this.hash;
                        $target = $(target);
                        $('html, body').stop().animate({
                                'scrollTop': $target.offset().top+2
                        }, 500, 'swing', function () {
                                window.location.hash = target;
                                $(document).on("scroll", onScroll);
                        });
                });
        });
 
        function onScroll(event){
                var scrollPosition = $(document).scrollTop();
                $('nav a').each(function () {
                        var currentLink = $(this);
                        var refElement = $(currentLink.attr("href"));
                        if (refElement.position().top <= scrollPosition && refElement.position().top + refElement.height() > scrollPosition) {
                                $('nav ul li a').removeClass("active");
                                currentLink.addClass("active");
                        }
                        else{
                                currentLink.removeClass("active");
                        }
                });

Grüße

akzeptierte Antworten