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

Interaktywne menu JS

Object Storage Arubacloud
0 głosów
237 wizyt
pytanie zadane 26 marca 2019 w JavaScript przez mb-dir Mądrala (6,710 p.)
edycja 26 marca 2019 przez mb-dir

Witam

Rozmyślając nad tym jak wykonać najprostsze menu które będzie reagowało na kliknięcia użytkownika stworzyłem coś takiego(strona nie ma wyglądać - ma dobrze działać, dlatego nie przywiązywałem uwagi do kolorów, obrazków itp). I trochę się pogubiłem. Każde menu jakie widziałem było napisane tak 

<li><a href="">Opcja jeden</a></li>
<li><a href="">Opcja dwa</a></li>
<li><a href="">Opcja trzy</a></li>

 Ja zrezygnowałem z linków, dlaczego? Ponieważ opcje w menu nie maja prowadzić do innych podstron, tylko do danych sekcji na stronie(po kliknięciu ma się 'przeskrolować' do danej sekcji), wiem że można załatwić to w taki sposób 

<li><a href="#test">Opcja jeden</a></li>
<li><a href="">Opcja dwa</a></li>
<li><a href="">Opcja trzy</a></li>

I do tego miejsca gdzie chcemy być przeniesieni po kliknięciu dodać id="test", jednak wtedy do adresu jest dodawane na końcu to id. Ponadto jest to integracja strony z użytkownikiem a pierwotnym zadaniem JS były właśnie interakcje.

Może trochę za bardzo na siłę chciałem to zrobić za pomocą JS - nie wiem, wiem tylko że nie potrafię sobie wyjaśnić jak osiągnąć taki efekt, żeby był on zgody z standardami.

Finalne pytanie - Jaki jest najlepszy, najbardziej zgodny sposób na osiągnięcie takiego efektu jaki mi się udało osiągnąć?

Tak wiem mój JS nie jest jakiś super..

Github

Pozdrawiam

1
komentarz 26 marca 2019 przez lateM Pasjonat (17,660 p.)

Gdzie takie coś widziałeś? 

<a href=""><li>Tekst</li></a>

Linki "a" powinny się zawsze znajdować wewnątrz li (którego rodzicem powinno być ul lub ol). 

komentarz 26 marca 2019 przez mb-dir Mądrala (6,710 p.)
Człowiek myśli jedno pisze drugie.. Już poprawiłem treść pytania

1 odpowiedź

0 głosów
odpowiedź 28 marca 2019 przez Kacper Sas Dyskutant (8,460 p.)

Widzę, że uporałeś się z tym :) Jednak zamiast:

window.scrollTo(0, offsetJumbotron-heightMenu);

poleciłbym zapoznać i spróbować:

document.getElementById('id_elementu').scrollIntoView();

Dodatkowo można ustalić zachowanie tego przewijania :)

np:

document.getElementById('id_elementu').scrollIntoView({
  behavior: 'smooth'
});

 

komentarz 28 marca 2019 przez mb-dir Mądrala (6,710 p.)
Witaj

Oglądałem kurs JS na kanale Jakub Jurkian, kurs bodajże z 2017 roku i była tam mowa że document.getElementById jest już trochę stare i powinno się używać querySelector - czy tak jest? I drugie pytanie, czy bardzo pomieszałem ES5 z ES6, bo kompletnie nie wiem.

Dziękuje i pozdrawiam
komentarz 28 marca 2019 przez Kacper Sas Dyskutant (8,460 p.)

Cóż, nie mam styczności z JS na co dzień, więc nie jestem pewien, czy odradza się korzystania z getElementById. Jeśli tak jest, to cóż za problem zrobić to tak:

document.querySelector('#'+id).scrollIntoView({behavior: 'smooth'});

Pozdrawiam :)

P.S. Tak jak wspomniałem wyżej, nie mam styczności na co dzień, więc również nieetyczne wydaję mi się z mojej strony ocenianie kodu.

Podobne pytania

+1 głos
2 odpowiedzi 185 wizyt
pytanie zadane 12 marca 2019 w JavaScript przez PROFF Obywatel (1,180 p.)
0 głosów
1 odpowiedź 125 wizyt
pytanie zadane 26 marca 2019 w C i C++ przez Dew Początkujący (290 p.)
0 głosów
1 odpowiedź 487 wizyt
pytanie zadane 28 maja 2015 w JavaScript przez Robert Saternus Stary wyjadacz (12,180 p.)

92,555 zapytań

141,402 odpowiedzi

319,538 komentarzy

61,938 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!

...