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

Podświetlanie linku w nawigacji dla aktywnej sekji

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
741 wizyt
pytanie zadane 9 sierpnia 2019 w JavaScript przez Luckyluck87 Użytkownik (660 p.)
edycja 12 sierpnia 2019 przez Luckyluck87

Cześć,

Jak w temacie, a konkretnie chodzi o to że potrzebuję zrobić tak aby przy scrollowaniu strony , kiedy pojawia się nowa sekcja to w nawigacji do linku który prowadzi do tej sekcji była dodawana klasa np "active".

ogólnie nie mam problemu z dodaniem tej klasy przy zmianie podstron , do tego napisałem taki skrypt:

var url = document.URL;
var section = document.querySelectorAll('.section');
var link = document.querySelectorAll('.link');



window.addEventListener('load', ()=>{
  link.forEach(function(e) {
    if (e.getAttribute('href') === url)
    {
      e.classList.add('active');
    };
  })

})

Po załadowaniu pobieram akualny adres strony i porównuje go z wartością atrybutu "href" linka, jeżeli są zgodne to dodaje do niego klasę "active" . Nie wiem natomiast jak to rozwiązać przy przewijaniu strony głownej dla różnych sekcji. 

Będę bardzo wdzięczny za pomoc. 

Pozdrawiam 

1 odpowiedź

0 głosów
odpowiedź 10 sierpnia 2019 przez Tpk Nałogowiec (40,220 p.)
edycja 10 sierpnia 2019 przez Tpk

Generalnie rzecz biorąc sprawdzasz co jakiś czas pozycję Y czyli pionowo względem początku strony.

Jeżeli ta zmieniła się o jakiś rozmiar (np. wysokość pojedynczej sekcji) to dodajesz odpowiednią klasę na element w menu, to samo jeżeli użytkownik cofa się na sam początek.

Przykładowa implementacja (nie mojego autorstwa - ale dobra żeby podchwycić sam koncept) - https://codepen.io/zchee/pen/ogzvZZ?editors=0010 

Na scrollowanie również jest listener więc bez problemu to ogarniesz ;) -> https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event

komentarz 12 sierpnia 2019 przez Luckyluck87 Użytkownik (660 p.)
Dziękuję bardzo za odpowiedź. Właśnie tez tak kombinowałem z pozycją Y i wysokością pojedynczej sekcji ;)

Pozdrawiam

Podobne pytania

0 głosów
1 odpowiedź 368 wizyt
pytanie zadane 4 kwietnia 2016 w JavaScript przez Barus Stary wyjadacz (14,120 p.)
0 głosów
1 odpowiedź 470 wizyt
0 głosów
0 odpowiedzi 153 wizyt
pytanie zadane 11 lutego 2020 w OpenGL, Unity przez Alan Kruszyński Obywatel (1,410 p.)

93,174 zapytań

142,185 odpowiedzi

321,970 komentarzy

62,503 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1157p. - dia-Chann
  2. 1139p. - Łukasz Piwowar
  3. 1131p. - CC PL
  4. 1126p. - Łukasz Eckert
  5. 1118p. - Tomasz Bielak
  6. 1104p. - Michal Drewniak
  7. 1083p. - Marcin Putra
  8. 1078p. - rucin93
  9. 1071p. - rafalszastok
  10. 1054p. - Adrian Wieprzkowicz
  11. 1047p. - Piotr Aleksandrowicz
  12. 1037p. - Michał Telesz
  13. 1023p. - Mariusz Fornal
  14. 1017p. - Mikbac
  15. 1005p. - ssynowiec
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...