![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 17.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam takowy problem: pewna funkcja w php wyświetla mi 5 szarych ikon. Za pomocą JS chcę, by najeżdżając na jedną z 5 szarych ikon zmieniły się one na inny kolor ikony(inny plik) w taki sposób, że tylko od pierwszej do zaznaczonej. Po naciśnięciu na zadaną, chcę by zostało to zapamiętane i po "zjechaniu" kursora z danego wiersza było to zapamiętane, a po powrotnym najechaniu by znów można było zaznaczać dowolne, ale gdy się nie naciśnie to by system dalej to pamiętał. Poniżej część mojego kodu, który nie do końca działa - nie da się na nowo zaznaczać od zera. Przy okazji - kod w JS jest trochę chaotycznie napisany(nie mam wprawy w JS i gdy coś nie wychodzi to nie optymalizuję), więc gdyby ktoś mógł jeszcze to zoptymalizować-będę wdzięczny
Funkcja ocen_atrybut:
i plik JS:
Ten post edytował gulgul 13.07.2009, 10:40:10 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Samo zaznaczanie poszczególnych "gwiazdek" da się w CSS`ie zrobić (tak że po najechaniu na trzecią gwiazdkę podświetla się także pierwsza i druga). Na necie był gdzieś kurs jak takie coś zrobić w samym CSS, teraz nie powiem Ci gdzie dokładnie, możliwe, że tutaj (aktualnie strona nie odpowiada). Potem można by to oprogramować lekko w JS`ie
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 12 Dołączył: 12.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Swego czasu dla własnych potrzeb napisałem skromny skrypcik realizujący to zadanie, teraz pewnie bym go przepisał i nieco "oczyścił":
Kod JS: Kod // // @param: (int) ocena (liczba gwiazdek, która ma zostać podświetlona) // @param: (obj) uchwyt obiektu (this) // function starRate(v,t){ var imgDir = 'sciezka_do_plikow_z_obrazami'; var maxRate = 5; // Maksymalna ocena (ilość wszystkich gwiazdek) for(var i = 1; i <= maxRate; ++i){ document.getElementById('star-'+i).src = imgDir + 'nazwa_pliku_z_nieaktywna_gwiazdka.gif'; } if(v > 0 && v <= maxRate){ for(var i = 1; i <= v; ++i){ document.getElementById('star-'+i).src = imgDir + 'nazwa_pliku_z_aktywna_(podswietlona)_gwiazdka.gif'; } } t.onmouseout = function(){ starRate(0, this); } } Przykładowy kod HTML: Kod <!--
Przykład zastosowania --> <img src="#" id="star-1" onMouseOver="starRate(1, this)" /> <img src="#" id="star-2" onMouseOver="starRate(2, this)" /> <img src="#" id="star-3" onMouseOver="starRate(3, this)" /> <img src="#" id="star-4" onMouseOver="starRate(4, this)" /> <img src="#" id="star-5" onMouseOver="starRate(5, this)" /> |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 04:35 |