Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][JavaScript] Podmenu z wyróżnionym linkiem
Lombi
post
Post #1





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


Witajcie,

Taki trywialny problem napotkałem podczas pisania kodu:
Mam menu tak wyglądające:
Menu1
- SubMenu1
-- SubSubMenu1
- Submenu2
Menu2 itd...

Po kliknieciu na Menu1 rozwija się lista SubMenu danego działu. Po kliknięciu na SubMenu1 rozwija się kolejne podmenu - w tym przypadku pokaże się tylko SubSubMenu1. Typowe menu drzewiaste (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Do tej pory jest wszystko w porządku tylko jak kliknę w jakiś link (np. SubMenu2), to po przeładowaniu stronki chce mieć rozwinięte podmenu działu Menu1 i wyróżniony kliknięty link.

Znalazłem cos o nazwie dojoTree, ale to setki linijek kodu. Pytanie brzmi jak zrobić to w łatwiejszy sposób?
Mam nadzieję że nie zamotalem.

Ten post edytował Lombi 24.10.2008, 15:06:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


W adresie przekazuj id menu (tak, że każde menu, submenu ma swój unikalny id) i przy generowaniu menu na danej stronie sprawdzaj czy dana gałąź menu jest ta, która jest w adresie, jeśli tak, dopisz jej klase css oznaczającą, że dane menu to jest te aktywne.

  1. <?php
  2. //link np: index.php?strona=3
  3. //generowanie menu wersja strasznie uproszczona
  4. foreach ($menu as $id =>$val){
  5. if ($id == intval($_GET['strona'])){echo 'class="active"';}
  6. }
  7. ?>
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #3





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


gdyby subMenu2 miało jakiś związek z SubSubMenu1, np było jego "dzieckiem", to wtedy js w połączeniu z php "przedpiszcy" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ładnie by Ci rozwijało wszystko. ale SubMenu2 nie jest dzieckiem ani rodzicem subsubMenu1, więc nadanie klasy pomoże nam tylko wyróżnić aktywną stronę. a rodzeństwa może być więcej niż dwoje.

wpadłem na taki pomysł, że:
możesz oprócz przekazywania id aktywnej podstrony zrobić w css'ie że każdy link odwiedzony jest display: block, każdy nieodwiedzony i znajdujący się wewnątrz drzewa (nie będący na samej górze) ma display: none. za pomocą js ustawiać co dzieje się z rodzicami linka który ma display: block (lub który jest visited). to chyba jest jakieś wyjście.

najlepiej jednak by było ładować treść do div'a obok meu bez przeładowania strony.

edit:
może nie display: none, ale position: absolute; left: -999em
i nie display: block, ale: position: relative; left: auto;

i nie mam mozliwości sprawdzenia jak ie sobie z tym radzi

Ten post edytował hiszpanespaniol 25.10.2008, 10:40:43
Go to the top of the page
+Quote Post
Lombi
post
Post #4





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


Jej ale mam zaćmienia. Sposób Vokiela śmiga aż miło. Dzięki za zainteresowanie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 05:08