Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][JavaScript] Podmenu z wyróżnionym linkiem
Lombi
post 24.10.2008, 15:04:24
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 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


--------------------
znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
vokiel
post 25.10.2008, 08:18:20
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 25.10.2008, 10:33:31
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" 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 26.10.2008, 12:03:57
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.


--------------------
znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 10:50