RGB-Werte per Script erzeugen und in Textfeld ausgeben
Sebastian Schimpf
- javascript
Schönen guten Abend liebe Leute,
ich bin gerade dabei ein gefundenes Script anzupassen, mit dem ich die
Möglichkeit habe, per Schieberegler die Hintergrundfarbe diverser HTML-Elemente zu ändern.
Praktisch ist diese Spielerei, weil ich einen Kunden habe, der sich nicht entscheiden kann, welche Fareb seine Formulare haben sollen.
www.officio.biz
Um bald eine einheitliche Farbgebung gewährleisten zu können, habe ich den Vorschlag gemacht, in einem Styleguide, den ich schon angelegt habe, die Formulare mit diesem Schieberegler zu versehen.
Ich habe es nach Stunden Arbeit und dem austesten mehrere Scripte auch hinbekommen, mehrer Elemente unabhängig einstellbar zu gestalten.
Supergeile Scripte findet man übrigens unter: [url]http://www.walterzorn.de/dragdrop/dragdrop.htm[/url]
DHTML vom feinsten. Allerding sind die Scripte sehr kompliziert und ich bin an der Anpassung gescheiter, weil ich mehrer Elemnte gleichzeitig beinflussen will.
Nun komme ich auf den Punkt:
In dem von mir gewählten Script werden die RGB-Werte in verbindung mit diesem Array erzeugt.
Das "Blöde" daran ist, dass dadurch nur grobe Farbabstufungen möglich sind. Wenn ich alle Farbkombinationen per vordefinierte Variable erzeugen wollte, wäre die Liste offensichtlich extrem lang und ich denke man kann das auch anders lösen.
Die Frage ist: Wie?
Wie kann ich ein Array erzeugen, dass alle Zahlen und Buchstaben-Kombination beinhaltet und dann an meine Funktion weitergibt?
So sieht es im Moment aus:
var Color= new Array();
Color[0] = "00";
Color[1] = "11";
Color[2] = "22";
Color[3] = "33";
Color[4] = "44";
Color[5] = "55";
Color[6] = "66";
Color[7] = "77";
Color[8] = "88";
Color[9] = "99";
Color[10] = "AA";
Color[11] = "BB";
Color[12] = "CC";
Color[13] = "DD";
Color[14] = "EE";
Color[15] = "FF";
So sieht die Funktion aus, die die Farbwerte dynamisch erzeugt:
var rVal,gVal,bVal, cCol
function chgBg() {
cCol = document.getElementById('test').style.background; rVal=cCol.substr(1,2); gVal=cCol.substr(3,2); bVal=cCol.substr(5,2);
ind = Math.round(showPerc/16); if (ind < 0) ind = 0; if (ind > 15) ind=15;
if (kObj.id =="knobImg") document.getElementById('test').style.background="#"+Color[ind]+gVal+bVal;
if (kObj.id =="knobImg1") document.getElementById('test').style.background="#"+rVal+Color[ind]+bVal;
if (kObj.id =="knobImg2") document.getElementById('test').style.background="#"+rVal+gVal+Color[ind];
var color = "#"+rVal+gVal+bVal;
document.cform.ctext.value = color;
}
Ich bin über jeden konstruktiven hinweis dankbar!
Einen freundlichen Gruß sendet euch
Sebastian
Hi,
Rechtschreibung ist heute nicht meine Stärke ;-)
GS