Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][PHP]Jak zrobić by aktywny link cały czas miał zmieniony kolor
Forum PHP.pl > Forum > Przedszkole
lamcpp
witam mam problem z linkami, otóż chciałbym aby po naciśnieciu na link, zmienił on kolor na podany przeze mnie i dodatkowo zeby cały czas utrzymywal ten kolor az do kliknięcia w inny link. Jak to zrobić? chyba się nie da przy pomocy samego CSS.
Pseudoklasa a:active wogole nie zdaje swojej roli, ponieważ ona powoduje że element podczas kliknięcia zmienia kolor, a jak link się załaduje, to wraca do poprzedniego koloru, dlatego potzebuje jakiegos innego rozwiązania
Agape
W SAMYM css nieda sie tego zrobic. Da sie wybrac w css link z okreslomym adresem ale nieda sie pobrac aktualnego adresu na jakim jestesmy. W js niby sie da ale ktos ma wyl js albo korzysta z kom na ktorej niema js i sie niewyswietli, chyba ze cala strona jest w js to to by bylo lepsze rozwiazanie wtedy. Mysle ze najlepiej zrobic to w php ale bylo by wygodniej gdybys pokazal jak generowane jest menu zeby powiedziec co bedzie najleprze. Mozesz np. Sprawdzac czy link odnosi sie do aktualnej strony, jesli tak dodajesz mu klase current i zalatwione.

EDIT:
Przyszla mi do glowy jeszcze jedna mozliwosc, mozna generowac przez php css'a a dokladnie wykorzystac selektor atrybutow. Jako nazwe atrybutu wstawic href, jako wartosc adres strony np. Strona.pl/news.php i dodac w ten sposob styl linku o ktory Ci chodzi. Niepodam niestety kodu bo pisze z komorki, ale to zwykly selektor css.

Wady rozwiazania: wygenerowany css sie nie cache'uje w przegladarce ale jest to pare znakow wiec mala strata.

Zalety: wykonujemy tylko jedna czynnosc w php, zamiast za kazdym razem sprawdzac link czy nie nalezy do aktualnego adresu

Mysle, ze warto sprobowac, sam moze przetestuje w najblizszym projekcie. Pozdrawiam
lamcpp
menu niestety generowane dynamicznie,
a jak można coś takiego zrobić w javascript?
Agape
Zależy czy korzystasz z samego JavaScript, czy może z Ajax'owego frameworka np jQuery. Ale myk polega na tym, że pobierasz adres strony na której jesteś, np:
[JAVASCRIPT] pobierz, plaintext
  1. window.location
[JAVASCRIPT] pobierz, plaintext

albo
[JAVASCRIPT] pobierz, plaintext
  1. document.location.href
[JAVASCRIPT] pobierz, plaintext

nie jestem pewien ale chyba to pierwsze jest poprawne,
a później szukasz elementu w drzewie DOM który ma taki adres w atrybucie href.

Nie wiem jak to będzie dla czystego JavaScript+DOM mogę Ci podać jak to się robi w jQuery. Musisz skorzystać z selektora atrybutów wpisując jako element a, atrybut href i wartość, adres strony
nieznany
Cytat(lamcpp @ 27.12.2009, 01:53:00 ) *
menu niestety generowane dynamicznie,
a jak można coś takiego zrobić w javascript?


Ni e w jaki sposób generujesz menu ale myśle że możesz ten problem rozwiązać dzieki sesjom. Na podobnej zasadzie wykonałem sortowanie produktów w sklepie:
Tworzysz sesje


  1. if(isset($_GET['menu'])) { $menu = $_GET['menu']; $_SESSION["menu"] = $menu;}
  2. else if (isset($_SESSION["menu"])) { $menu = $_SESSION["menu"];}


a później w menu coś w stylu
  1. if ( $_SESSION["menu"] == "wartosc id klawisza") ( echo " inny styl podświetlony"; )


To tylko szkic ale myślę, że na tej zasadzie można pobrać dowolny link i zapisać go jako aktywny a poniżej porównujesz to co masz w menu z danymi z sesji.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.