Strona 1 z 2

Komórka typu "rollOver"

: 14 paź 2005, 20:53:36
autor: linksworld
zastanawia mnie, jak zrobione są menu na niektóruch stronach www.
:arrow: na przykład mozilla.org

to znaczy:
:arrow: tekst w komórkach,
:arrow: a po najechaniu na komórkę jej tło się zmienia

: 14 paź 2005, 21:00:38
autor: Mati
No ja też jestem ciekaw.

: 14 paź 2005, 21:01:03
autor: Puma
[JavaScript] Jak zmienić kolor komórki tabeli po najechaniu na nią myszą?

Problem

Chcesz zmienić kolor w jednej z komórek tabeli po najechaniu na nią myszą, po opuszczeniu kursora, stary kolor ma zostać przywrócowny ponownie.

Rozwiązanie

W różnych projektach graficznych lub przy wyróżnianiu aktualnie wybranej komórki menu stworzonego z wykorzystaniem tabel, można zastosować bardzo prosty i efektowny trick - zmienić kolor pola. Zabieg stosowany z wyczuciem znacznie ułatwia nawigację po menu na stronie. Zobacz jak to osiągnąć.

<table border=1><tr>
<td bgcolor="yellow"
onMouseOver='this.style.backgroundColor="red"'
onMouseOut='this.style.backgroundColor="yellow"'>
komórka 1
</td>
<td bgcolor="#c0c0c0"
onMouseOver='this.style.backgroundColor="blue"'
onMouseOut='this.style.backgroundColor="#c0c0c0"'>
komórka 2
</td>
</tr></table>

Jak widzisz w przykładzie, ważne jest ustalenie trzech kolorów - pierwszy (bgcolor) to kolor domyślny komórki, drugi (onMouseOver) uaktywnia się po najechaniu kursorem myszy, a trzeci (onMouseOut) pojawi się po opuszczeniu komórki przez kursor.

Dobierając te trzy kolory można dowolnie modyfikować kolory poszczególnych komórek tabeli. Pamięraj tylko, że kolory muszą być umieszczone w cudzysłowach - inaczej nie zadziałają.

: 14 paź 2005, 22:57:20
autor: porni
Aaaa CSS nie lepszy??

Kod: Zaznacz cały

<td class="komorka"> 
i w arkuszu styli

Kod: Zaznacz cały

.komorka a:link &#123;
background: blue;
&#125;

.komorka a:hover &#123;
background: black;
&#125;
 

: 15 paź 2005, 15:58:35
autor: linksworld
Hmm... ciekawy bardzo ten CSS :D , bo JavaScript spotykany jest rzadko w takich momentach :lol: .

Dziwi mnie jeszcze jedna rzecz: :?
:arrow: w komórce jest dajmy na to jedno słowo, a łączem jest cała komórka...


Widziałem jeszcze coś takiego:

Kod: Zaznacz cały

off
&#123;
background: #cośtam
&#125;

off.hover
&#123;
background: #inne cośtam
&#125;
 

: 15 paź 2005, 16:21:45
autor: Puma
[JavaScript] Jak zrobić, aby cała komórka tabeli odsyłała na inną stronę po jej kliknięciu?

Problem

Chcesz stworzyć odnośnik w postaci całej komórki tabeli, tak aby można było kliknąć w dowolne miejsce komórki co spowoduje przekierowanie na inną stronę.

Rozwiązanie

Często menu budowane jest w postaci kolorowych komórek tabeli, jednak linkiem jest zawsze tylko odnośnik znajdujący się w tej komórce. Użytkownik musi "trafić" w link, co nie zawsze jest wygodne.

Znacznie ciekawszym rozwiązaniem jest kliknięcie w dowolny obszar komórki tabeli, aby od razu przejść do wybranej strony lub podstrony. Zobacz jak to osiągnąć.

Kod: Zaznacz cały

<table width=200 border=1>
<tr><td bgcolor=yellow align=center
onclick="document.location='http://web.reporter.pl/'"
style="cursor:pointer">
<a href="http://web.reporter.pl/">Web</a>
</td></tr></table> 

Dodanie do definicji komórki skryptu wywoływanego po jej kliknięciu (onclick) powoduje, że przeglądarka pobiera zawartość strony bez czekania na kliknięcie we właściwy odnośnik tekstowy.

Dodatkowy styl cursor:pointer powoduje, że symbol kursora myszy zamienia się w komórce tabeli na symbol rączki, jak w wypadku prawdziwego odnośnika.

Skrypt jest bardzo wygodny w użyciu i nie wymaga od użytkownika precyzyjnego najechania na odnośnik tekstowy, szczególnie gdy jest on krótki.

: 15 paź 2005, 17:23:43
autor: linksworld
Puma dostaje ode mnie drugiego plusa :!:

: 16 paź 2005, 09:44:04
autor: Farseer
Puma ladnie kopiowac umiesz :)

: 20 paź 2005, 20:12:01
autor: linksworld
Farseer Ty to jesteś... czasem boję się odpowiadać... Twoja osoba straszy użytkowników... Bez obrazy !!

: 20 paź 2005, 20:42:45
autor: fuma
Już któryś raz z kolei wypowoadzasz się linksworld nie na temat. Proszę o zaprzestanie tego typu praktyk.

: 21 paź 2005, 10:21:07
autor: Puma
W CSS można napisać tak, cała komórka jest jako link :

Kod: Zaznacz cały

.blok &#123;
display: block;&#125;


<TABLE border="1" width="200">
<TR height=18px>
 <TD width=194px> <A HREF="http://www.puma.kw.pl" class="blok">Intermania</A> </TD>
</TR>
</TABLE> 

: 21 paź 2005, 18:39:34
autor: linksworld
Puma, rozumiem, że Ty to rozumiesz, i że rozumiesz to, że ja tego
nie rozumiem, więc powiem, że nie wstawię Ci plusa, bo nie jest to pomocne,
a na dodatek tego nie rozumiem ;)

: 21 paź 2005, 18:59:45
autor: Puma
Ha ha, fajnie to powiedziałeś :)

Kod: Zaznacz cały

<style>
.blok &#123;
display: block;&#125;</style> 


Robisz komórkę w tabeli a w niej linka, dodajesz class(styl) przy linku (class="blok").

ps. Możesz naturalnie dać style w oddzielnym pliku a nie w dokumencie ze stroną.
ps2. A plusa nie chcę bo i tak już mówią iż dostałem dwa od ciebie ;)

To działa !!!

: 30 paź 2005, 00:16:19
autor: linksworld
---------- 14:50 23.10.2005 ----------

Sie umie nie ziom :wink: :?: :!:

EngCentre:
Ostatni raz Cie upominam... Fuma juz Ci cos chyba mowil... Jeszcze raz takie cos i nie bede taki mily...


---------- 00:16 30.10.2005 ----------

Kod: Zaznacz cały

<TABLE border="1" width="200">
<TR height=18px>
<TD width=194px> <A HREF="http://www.puma.kw.pl" class="blok">Intermania</A> </TD>
</TR>
</TABLE> 
Powyższy kod działa :!: :!: :jupi: :jupi: :jupi:
Dziękować Ci nazwet Indianie ;)
Wykorzystam to...

: 30 paź 2005, 08:23:04
autor: Puma
Teraz jeżeli chcesz żeby komórka zmieniała kolor, wystarczy dać link nieaktywny i aktywny na inny kolor gdyż link jest rozciągnięty na całą komórke.

ps. Ja mam tak zrobione :

Kod: Zaznacz cały

.tabelamenu a:link, .tabelamenu a:visited &#123;
   text-decoration: none;
   color: #804000;
   background-color: transparent;
   display: block;
&#125;
.tabelamenu a:hover &#123;
   color: #ffffff;
   background-color: #804000;
   display: block;
&#125; 
Cała tabela ma class tabelamenu, gdybyś nie ograniczył linka do komórki lub stylem to wtedy link by się rozciągnął na całą szerokość strony (display: block; ).