• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Co dodać w moim skrypcie żeby usuwało klasę po scrollowaniu

0 głosów
312 wizyt
pytanie zadane 23 lipca 2017 w JavaScript przez The Real Slim Stefan Początkujący (450 p.)
zmienione kategorie 23 lipca 2017 przez Arkadiusz Waluk

Witam mam taki skrypcik

var lastId,
    topMenu = $("#ul_nawigacja"),
    topMenuHeight = topMenu.outerHeight()+70,
    // Wszystkie elementy listy
    menuItems = topMenu.find("a"),
    // Kotwice do pozycji menu
    scrollItems = menuItems.map(function(){
      var item = $($(this).attr("href"));
      if (item.length) { return item; }
    });
 
// Animacje po kliknięciu w pozycję menu
menuItems.click(function(e){
  var href = $(this).attr("href"),
      offsetTop = href === "#" ? 0 : $(href).offset().top-topMenuHeight+1;
  $('html, body').stop().animate({ 
      scrollTop: offsetTop
  }, 1000);
  e.preventDefault();
});
 
// Po przewinięciu
$(window).scroll(function(){
   // Pobierz pozycje kontenera 
   var fromTop = $(this).scrollTop()+topMenuHeight;
    
   // Pobierz identyfikator aktualnej pozycji przewinięcia
   var cur = scrollItems.map(function(){
     if ($(this).offset().top < fromTop)
       return this;
   });
   // Pobierz identyfikator aktualnego elementu
   cur = cur[cur.length-1];
   var id = cur && cur.length ? cur[0].id : "";
    
   if (lastId !== id) {
       lastId = id;
       // Ustaw lub usun "active" - odpowiada za podświetlenie pozycji w menu
       menuItems
         .parent().removeClass("active")
         .end().filter("[href=\"#" + id +"\"]").parent().addClass("active");
   }                   
});

Wszytko świetnie działa tylko mam pytanie jak zmodyfikować ten skrypt żeby usuwało klasę aktywną po tym jak scrolluje myszką w dół, chodzi mi o to że gdy wciskam w menu jakąś zakładkę to wszystko działa i zaznacza się klasa aktywna na tej zakładce i później gdy klikam następną to z tej się usuwa klasa aktywna a dodaje na tej co kliknąłem, tak samo z samym scrollem gdy zjeżdżam samym kółkiem myszy do dołu wtedy zakładki w nawigacji ładnie się zmieniają, problem pojawia się gdy wcisnę na zakładkę na pasku nawigacji i wtedy zjadę do dołu scrollem, występuje wtedy niepożądany efekt w postaci takiej że dwie zakładki mają klasę active, czy ktoś pomógłby mi w modyfikacji tego kodu żeby działało to poprawnie?

 

komentarz 23 lipca 2017 przez CzikaCarry Szeryf (75,340 p.)

Co dodać w moim skrypcie żeby usuwało klasę po scrollowaniu

Dodać usuwanie klasy po scrollowaniu maybe? :D 

komentarz 23 lipca 2017 przez The Real Slim Stefan Początkujący (450 p.)
Nie wiem jak to zrobić i dlatego pytanie czy mógłbyś zmodyfikować mój kod

1 odpowiedź

+1 głos
odpowiedź 23 lipca 2017 przez CzikaCarry Szeryf (75,340 p.)
Panie, to przetłumacz sobie nazwę wątku który założyłeś na angielski i wpisz w google, so fking hard..

Pierwszy link od góry, no na prawdę, bardzo ciężko użyć wyszukiwarki... http://lmgtfy.com/?iie=1&q=Delete+class+js

Podobne pytania

0 głosów
1 odpowiedź 1,480 wizyt
0 głosów
2 odpowiedzi 1,864 wizyt
pytanie zadane 27 sierpnia 2016 w JavaScript przez nielotweb Bywalec (2,240 p.)
+1 głos
0 odpowiedzi 334 wizyt

93,772 zapytań

142,730 odpowiedzi

323,382 komentarzy

63,368 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...