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

menu hamburger tylko na wersje mobilne

0 głosów
1,053 wizyt
pytanie zadane 17 listopada 2017 w JavaScript przez bicnet Gaduła (4,800 p.)

Witam,

mam taki kod:

$(document).ready(function()
{
  $("nav").hide();
  $("#button-menu").click(function()
  {
    $("nav").toggle("slow");
  });
});

Nic skomplikowanego, tylko problem w tym, że $("nav").hide(); używa się dla wersji monitorowej i wersji mobilnej, a ja chciałbym zrobić to tylko na wersje mobilne (na wersji mobilnej jest przycisk typu hamburger a na wersji monitorowej (powyżej 800px) już go nie ma tylko jest inna nawigacja).

Z góry dziękuję za odpowiedzi.

Pozdrawiam

6 odpowiedzi

+1 głos
odpowiedź 17 listopada 2017 przez Vorex444 Dyskutant (9,610 p.)
Nie musisz uzywać do tego JS, wystarczy w CSS media queries zastosować
komentarz 17 listopada 2017 przez bicnet Gaduła (4,800 p.)
No tak mam tylko, że jak dam dla JS: nav hide() to usunie mobilną i deskopową.

@edit w sensie schowa
komentarz 17 listopada 2017 przez zgrybus Pasjonat (24,860 p.)
zawsze możesz dać if(window.getBoundingClientRect().width < 800 ) i ta funkcja.
+1 głos
odpowiedź 17 listopada 2017 przez zgrybus Pasjonat (24,860 p.)
@media(min-width: 800px) {

    nav { display: none } // czy to gdzie trzymasz hamburger menu

}
komentarz 17 listopada 2017 przez bicnet Gaduła (4,800 p.)
nav hide() chowa mobile i deskop
0 głosów
odpowiedź 17 listopada 2017 przez lapacz.kornel Mądrala (6,930 p.)

Uswasz z JS :

$("nav").hide();

a do css dodajesz : 

@media only screen and (min-width: 800px) {
  nav {
    display: none;
  }
}

 

0 głosów
odpowiedź 17 listopada 2017 przez bicnet Gaduła (4,800 p.)

Teraz mam kod:

$(document).ready(function()
{
   if (window.getBoundingClientRect().width < 800)
     {
       $("nav").hide();
     }
});

$("#button-menu").click(function()
   {
      $("nav").toggle("slow");
   });

 

I teraz działa mi nawigacja dla dobrych szerokości, przycisk również działa, ale nie nie chowa się przy załadowaniu strony

$("nav").hide();

, a gdy usunę

if (window.getBoundingClientRect().width < 800)

To nav się chowa, ale na wersje 800px+ nav znika.

0 głosów
odpowiedź 17 listopada 2017 przez Schizohatter Nałogowiec (39,600 p.)
Zamiast robić .hide .show, to przypnij klasę w JS. A reszta w CSS i @media.
–1 głos
odpowiedź 17 listopada 2017 przez Bornegio Obywatel (1,070 p.)
Musisz sprawdzić z czego wszedł na stronę użytkownik i odpowiednimi ifami dostosować treść.
komentarz 17 listopada 2017 przez bicnet Gaduła (4,800 p.)
A wiesz może jak to napisać w JS?

Te szerokości?
komentarz 17 listopada 2017 przez Bornegio Obywatel (1,070 p.)
Nie znam się zbytnio na JSie, ale zarówno JS jak i PHP powinno mieć do tego wbudowane funkcje.

Znalazłem coś takiego dla wewnętrznych rozmiarów okna:

window.screen.availHeight

window.screen.availWidth

i dla rozdzielczości ekranu:
window.screen.height

window.screen.width

Ale nie wiem czy działa. Musisz sam sprawdzić

Podobne pytania

0 głosów
3 odpowiedzi 704 wizyt
pytanie zadane 6 czerwca 2017 w JavaScript przez dervil Gaduła (3,030 p.)
0 głosów
1 odpowiedź 181 wizyt
pytanie zadane 4 lipca 2017 w JavaScript przez kralcz88 Obywatel (1,810 p.)
–1 głos
1 odpowiedź 237 wizyt

93,425 zapytań

142,421 odpowiedzi

322,647 komentarzy

62,787 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...