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

Menu zwijalne poprzez kliknięcie w link

Object Storage Arubacloud
0 głosów
218 wizyt
pytanie zadane 26 października 2022 w JavaScript przez Gos85 Nowicjusz (120 p.)

Hej, potrzebuję pomocy. Mam skrypt java na rozwijanie menu, ale chciałabym, żeby to menu zwijało się jak już strona zescrolluje się do odpowiedniego miejsca. Niestety zamyka się dopiero po ponownym kliknięciu na hamburgerka. Szukam już drugi dzień i nic pasującego nie umiem znaleźć :( 

 

<script>

          const menuBtn=document.querySelector('.menu-btn')
          const navlinks=document.querySelector('.nav-links')

          menuBtn.addEventListener('click', ()=>{
            navlinks.classList.toggle('mobile-menu')

          })

</script>

 

komentarz 26 października 2022 przez Piotrek2713 Mądrala (5,340 p.)
Pokaż kod HTML
komentarz 26 października 2022 przez Gos85 Nowicjusz (120 p.)
    <!--Navbar-->
    <nav class="navbar">
      <a href="#"><img src="./images/logo.png" alt="" class="logo-img"></a>
      <div class="logo">
      </div>
      <ul class="nav-links">
        <li><a href="#uslugi">Usługi</a></li>
        <li><a href="#certyfikaty">Certyfikaty</a></li>
        <li><a href="#modele">Produkty</a></li>
        <li><a href="#onas">O nas</a></li>
        <li class="ctn"><a href="#cont">Kontakt</a></li>
      </ul>
      <img src="./images/menu-btn.png" alt="" class="menu-btn">
    </nav>

tyle wystarczy? 

1 odpowiedź

0 głosów
odpowiedź 27 października 2022 przez VBService Ekspert (252,740 p.)
edycja 27 października 2022 przez VBService

chciałabym, żeby to menu zwijało się jak już strona zescrolluje

jeżeli chodzi Tobie, że gdy kliknie się w link w menu to możesz użyć Event Delegation i zapisać to np. tak

[ on-line ]

const navbar = document.querySelector('.navbar'),
      navlinks = document.querySelector('.nav-links');

navbar.addEventListener('click', (e) => {
  if (e.target.nodeName == 'IMG' && e.target.className == 'menu-btn') {
    e.preventDefault();
    navlinks.classList.toggle('mobile-menu');
  }
  if (e.target.nodeName == 'A') {
    navlinks.classList.remove('mobile-menu');
  }
})

 


 

lub tak jak zasugerował @Comandeer

const navbar = document.querySelector('.navbar'),
      navlinks = document.querySelector('.nav-links');

navbar.addEventListener('click', (e) => {
  if (e.target.matches('img.menu-btn')) {
    e.preventDefault();
    navlinks.classList.toggle('mobile-menu');
  }
  if (e.target.matches('a')) {
    navlinks.classList.remove('mobile-menu');
  }
})

 

komentarz 27 października 2022 przez Comandeer Guru (600,810 p.)

Zamiast sprawdzania nodeName i className (zwłaszcza tego drugiego, bo może dawać false negatives, jeśli element ma więcej niż jedną klasę), można użyć matches().

Podobne pytania

0 głosów
1 odpowiedź 326 wizyt
0 głosów
1 odpowiedź 503 wizyt
pytanie zadane 19 sierpnia 2017 w HTML i CSS przez edwardo Nowicjusz (140 p.)
0 głosów
1 odpowiedź 190 wizyt
pytanie zadane 20 kwietnia 2016 w HTML i CSS przez ShadoWs Bywalec (2,800 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...