Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [javascript] Zmiana tła komórki
Forum PHP.pl > Forum > Przedszkole
Rzast
Witam
i mam prośbę o skrypt w javascripcie, albo przynajmniej naprowadzenie na rozwiązanie...
Sprawa wygląda tak:
dla każdego koloru (czerwony, zielony, niebieski) mam po 6 radiobuttonów, każdy o wartości rosnącej od 00 do FF z krokiem 33 i nazwie korenspondującej z kolorem (odpowiednio: tlo_c, tlo_g, tlo_b), czyli wygląda to tak (dla przykładu czerwony):
  1. <input type="radio" value="00" name="tlo_c" />
  2. <input type="radio" value="33" name="tlo_c" />
  3. <input type="radio" value="66" name="tlo_c" />
  4. <input type="radio" value="99" name="tlo_c" />
  5. <input type="radio" value="cc" name="tlo_c" />
  6. <input type="radio" value="ff" name="tlo_c" />


i teraz: na tej samej stronie jest komórka w tabeli o id="tlo", która ma mieć tło wybrane z powyższych składowych. Jak za pomocą JavaScriptu zrobić, by tło w tabeli zmieniało się dynamicznie, czyli po każdym wybraniu jakieś wartości w powyższych radiobuttonach.
Innymi słowy - jakie zdarzenie dać do onClick przy powyższych inputach?
empathon
  1. onClick = "object.style.backgroundColor = '#999999'"
Rzast
empathon:
Dzięki, ale nie o to chodziło...
chodzi mi o to, że po wybraniu np tlo_c o wartości "00", tlo_g o wartości "FF" i tlo_b o wartości "33" mamy tło komórki takie: #00FF33
a jak zmienię tlo_c z "00" na "CC" to wtedy tło komórki mam takie: #CCFF33.
Ponawiam pytanie:Jak to zrobić?
siemakuba
Coś takiego?

  1. <script type="text/javascript">
  2.  
  3. var colorVals = new Array('00','00','00');
  4.  
  5. function SetColor(obj)
  6. {
  7. if (obj.name == 'tlo_r')
  8. { colorVals[0] = obj.value;
  9. }
  10. else if (obj.name == 'tlo_g')
  11. { colorVals[1] = obj.value;
  12. }
  13. else if (obj.name == 'tlo_b')
  14. { colorVals[2] = obj.value;
  15. }
  16.  
  17. var clr = colorVals.join('');
  18. var div = document.getElementById('set-color-here');
  19. div.style.backgroundColor = '#'+clr;
  20. }
  21.  
  22. </head>
  23. <fieldset><legend>Czerwony (R)</legend>
  24. <input type="radio" value="00" name="tlo_r" onchange="SetColor(this)"> 00
  25. <input type="radio" value="33" name="tlo_r" onchange="SetColor(this)"> 33
  26. <input type="radio" value="66" name="tlo_r" onchange="SetColor(this)"> 66
  27. <input type="radio" value="99" name="tlo_r" onchange="SetColor(this)"> 99
  28. <input type="radio" value="cc" name="tlo_r" onchange="SetColor(this)"> CC
  29. <input type="radio" value="ff" name="tlo_r" onchange="SetColor(this)"> FF
  30. <fieldset><legend>Zielony (G)</legend>
  31. <input type="radio" value="00" name="tlo_g" onchange="SetColor(this)"> 00
  32. <input type="radio" value="33" name="tlo_g" onchange="SetColor(this)"> 33
  33. <input type="radio" value="66" name="tlo_g" onchange="SetColor(this)"> 66
  34. <input type="radio" value="99" name="tlo_g" onchange="SetColor(this)"> 99
  35. <input type="radio" value="cc" name="tlo_g" onchange="SetColor(this)"> CC
  36. <input type="radio" value="ff" name="tlo_g" onchange="SetColor(this)"> FF
  37. <fieldset><legend>Czarny (B)</legend>
  38. <input type="radio" value="00" name="tlo_b" onchange="SetColor(this)"> 00
  39. <input type="radio" value="33" name="tlo_b" onchange="SetColor(this)"> 33
  40. <input type="radio" value="66" name="tlo_b" onchange="SetColor(this)"> 66
  41. <input type="radio" value="99" name="tlo_b" onchange="SetColor(this)"> 99
  42. <input type="radio" value="cc" name="tlo_b" onchange="SetColor(this)"> CC
  43. <input type="radio" value="ff" name="tlo_b" onchange="SetColor(this)"> FF
  44. </form>
  45. <br><br>
  46. <div id="set-color-here" style="width:200px; height:200px;"></div>
  47. </body>
  48. </html>


pozdr.
Rzast
No tak... czyli sekcja HEAD się kłania... smile.gif
siemakuba:
dzięki, właśnie o coś takiego mi chodziło

edit:
Jako zdarzenie w radio lepsze będzie onClick, zamiast onChange, będzie reagować natychmiast

Jeszcze raz dzięki
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.