Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][CSS]Podświetlenie
Forum PHP.pl > Forum > Przedszkole
ksaw
Witam
Mam trywialny problem, z którym jakoś nie mogę sobię poradzić smile.gif
Mam dwie tabelki oparte na divach. Jak zrobić aby po najechaniu kursorem na wiersz w pierwszej tabelce podświetlił się wiersz w drugiej tabeli (równocześnie)?
pedro84
Możesz pokazać kod? Bo jakoś ciężko mi wyobrazić sobie głupotę pt. tabelki oparte na divach winksmiley.jpg
thomson89
Była taka nagonka, żeby nie robić stron na tabelkach. Bo tabelki służą do przedstawiania danych tabelarycznych. Teraz będzie nagonka żeby danych tabelarycznych nie przedstawiać w div'ach haha.gif

W CSS (nie działa pod IE)
  1. div:hover { background: yellow; }

  1. tr:hover { background: yellow; }


W JS, funkcją onmouseover lub łatwiej w jQuery funkcją .hover()
ksaw
kod jest nie ważny, może być nawet tabelka smile.gif
podświetlenie potrafię zrobić exclamation.gif
nie wiem jak zrobić aby po najechaniu na wiersz w pierwszej tabelce zaświecił się pierwszy wiersz w drugiej tabelce która znajduję się np na dole strony smile.gif
tu mam problem !
Damonsson
Jak masz je obok siebie możesz je dać do wspólnego DIVa i jemu nadać wartość xx i xx:hover na przykład z różnym opacity.
ksaw
no właśnie problem jest w tym że są w zupełnie innym miejscu !
cniak
dodaj do w pierwszej i drugiej tabelce takie same id i powinno dzialac, nadaj im hover
thomson89
Nie id, a class.
ksaw
a może jakiś przykład ? smile.gif
thomson89
  1. <tr><td id="jeden" class="jeden">Tekst</td></tr>
  2. <tr><td class="jeden">Tekst 2</td></tr>


[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2.  
  3. $('#jeden').hover(function(){
  4. $('.jeden').css('background', 'yellow');
  5. }),
  6. function(){
  7. $('.jeden').css('background', 'white');
  8. })
  9.  
  10. })
[JAVASCRIPT] pobierz, plaintext


Powinno działać.
ksaw
dzięki, ale coś nie za bardzo hula :/
thomson89
A bibliotekę jQuery dołączyłeś? biggrin.gif
ksaw
podpiąłem smile.gif bez zmian
thomson89
Mała literówka.

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2.  
  3. $('#jeden').hover(function(){
  4. $('.jeden').css('background', 'yellow');
  5. }, //tu był nawias i to powodowało błąd
  6. function(){
  7. $('.jeden').css('background', 'white');
  8. })
  9.  
  10.  
  11.  
  12. })
[JAVASCRIPT] pobierz, plaintext
ksaw
ok hula smile.gif
to jeszcze jedno pytanko!, a jak mam więcej wierszy np w pierwszej tabeli mam 5 i w drugiej tabeli mam 5, i teraz chciałbym aby
po najechaniu na 1-szy wiersz podświetlił się 1-szy wiersz w tabeli drugiej, 2 - 2, 3 - 3 itp.
thomson89
Możesz analogicznie kopiować, lub załatwić to funkcją.

  1. <tr><td id="jeden" class="jeden">Tekst</td> <td id="dwa" class="jeden">Tekst</td> <td id="trzy" class="jeden">Tekst</td></tr>
  2. <tr><td class="jeden">Tekst 2</td> <td class="dwa">Tekst 2</td> <td class="trzy">Tekst 2</td></tr>


I w skrypcie, kopiujesz to co jest w document ready i powielasz zmieniając id i class.

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2.  
  3. $('#jeden').hover(function(){
  4. $('.jeden').css('background', 'yellow');
  5. },
  6. function(){
  7. $('.jeden').css('background', 'white');
  8. })
  9.  
  10. $('#dwa').hover(function(){
  11. $('.dwa').css('background', 'yellow');
  12. },
  13. function(){
  14. $('.dwa').css('background', 'white');
  15. })
  16.  
  17.  
  18. })
[JAVASCRIPT] pobierz, plaintext
ksaw
domyśliłem się że można analogicznie skopiować kod smile.gif
mnie bardziej interesuje rozwiązanie troszkę bardziej skomplikowane, bo przecież jak będę mieć 50 wierszy to będzie mały problem !
everth
Przy założeniu że tabele mają tę samą ilość wierszy:
[JAVASCRIPT] pobierz, plaintext
  1. tabela1 = $('#tabela1 tr');
  2. tabela2 = $('#tabela2 tr');
  3.  
  4. tabela1.hover(function(){ //twoje wiersze w piersze
  5. tabela2.eq($(this).index()).addClass('highlight'); //klasa highlight w której definiujesz styl podświetlenia
  6. function(){
  7. tabela2.eq($(this).index()).removeClass('highlight');
  8. });
[JAVASCRIPT] pobierz, plaintext
ksaw
nie wiem, chyba jestem jakiś upośledzony winksmiley.jpg
albo oba wiersze w obydwu tabelach się podświetlają albo w ogóle nic się z nimi nie dzieje ! :/
everth
Ech, w skrypcie jest błąd:
[JAVASCRIPT] pobierz, plaintext
  1. tabela1 = $('#tabela1 tr'); //definiuje wszystkie wiersze w pierwszej tabeli (masz to na divach - nie wiem co stosujesz zamiast 'tr')
  2. tabela2 = $('#tabela2 tr'); //jak wyżej
  3.  
  4. tabela1.hover(
  5. function(){
  6. $(this).addClass('highlight'); //podswietla najechany element w tabeli 1
  7. tabela2.eq($(this).index()).addClass('highlight'); // podswietla odpowiadający element w drugiej tabeli
  8. },
  9. function(){ //usuwa podświetlenie
  10. $(this).removeClass('highlight');
  11. tabela2.eq($(this).index()).removeClass('highlight');
  12. }
  13. );
  14.  
  15. // I na odwrót
  16.  
  17. tabela2.hover(
  18. function(){ //twoje wiersze w piersze
  19. $(this).addClass('highlight'); //podswietla najechany element w tabeli 1
  20. tabela1.eq($(this).index()).addClass('highlight'); // podswietla odpowiadający element w drugiej tabeli
  21. },
  22. function(){ //usuwa podświetlenie
  23. $(this).removeClass('highlight');
  24. tabela1.eq($(this).index()).removeClass('highlight');
  25. }
  26. );
[JAVASCRIPT] pobierz, plaintext
thomson89
Żeby zrobić coś dla większej ilości rekordów, musisz mieć dwie funkcje.

1. Która za załadowaniem strony do każdego elementu z id w obszarze table1 przypisze akcje hover, która ma wykonać drugą funkcje przekazując jej w parametrach nazwę aktualnie najechanego elementu.

2. Funkcja podświetli odpowiedni element, po klasie którą ma w parametrze od pierwszej funkcji.

Zakodować tego nie potrafię, ale można coś próbować z pętlą która jedzie po każdym id w tabeli.
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.