Hallo,
ich habe mir echt Mühe gegeben, den Quelltext zu verstehen. Ich habe es bar nicht geschaft.
So verstehe ich den Quelltext:
// Funktion soll einen Farbwechsel von colorFROM nach colorTO bewirken,
// und zwar über step Zwischenstufen
function fade_IN_OUT(colorFROM, colorTO, step)
{
colorX = new Array(colorFROM, colorTO);
/*
colorX ist ein Array
Die obige Notation gleicht
colorX = new Array();
colorX[0] = colorFROM;
colorX[1] = colorTO;
wenn du die Farben spaeter nicht in einer
Schleife mit numerischen Indizies ansprechen
wirst, dann kannst auch auch assoziative
Arrays verwenden
colorX["von"] = colorFROM;
colorX["nach"] = colorTO;
*/
var i = colorX[0, 1];
/*
Das verstehe ich nicht!
Was soll denn da rauskommen?
Was erwartest du?
Vielleicht kenne ich die Notation nicht?
*/
var red = colorX[i].substr(1, 2);
var green = colorX[i].substr(3, 4);
var blue = colorX[i].substr(5, 6);
/*
Willst du den Rot-, Grün- und Blauanteil
_beider_ Farben speichern?
Unklar wegen der unklaren i-Definition
colorX["von"]["rot"] = colorX["von"].substr(1, 2);
colorX["von"]["gruen"] = colorX["von"].substr(3, 4);
colorX["von"]["blau"] = colorX["von"].substr(5, 6);
colorX["nach"]["rot"] = colorX["nach"].substr(1, 2);
colorX["nach"]["gruen"] = colorX["nach"].substr(3, 4);
colorX["nach"]["blau"] = colorX["nach"].substr(5, 6);
*/
// Color: Convert variables to colors.
color = Math.floor((red) (green) (blue) / 16)
/*
Das verstehe ich ebenfalls nicht.
Was willst du machen?
Wenn du zwischen (red), (green) und (blue)
Malzeichen setzt, und hinten noch ein Semikolon
dann kann so etwas kommen:
Angenommen die anfangsfarbe sei #AABBCC
und die Endfarbe #DDEEFF
colorX["von"]["rot"] = "AA";
colorX["von"]["gruen"] = "BB";
colorX["von"]["blau"] = "CC";
colorX["nach"]["rot"] = "DD";
colorX["nach"]["gruen"] = "EE";
colorX["nach"]["blau"] = "FF";
color = Math.floor("AA" * "BB" * "CC" / 16);
Du operierst mit Zeichenketten, und nicht mit Zahlen.
*/
// - - - - - - - - - -
// Color: Max. colors = Black/White
if(color < 0) {
return "00" // Semikolon!
}
if(color > 255) {
return "FF" // Semikolon!
}
/*
Geschickter ist else if
Bei vielen Fallunterscheidungen wird das "Programm"
Dann schneller.
Wenn color < 0 ist, dann ist es klar, dass
color > 255 gleich false ist.
*/
// - - - - - - - - - -
}
An die Methode musst du Zeichenketten übergeben. Anführungsstriche bei der Parameterüberhabe nicht vergessen!
<a href="index.php" onMouseOver="fade_IN_OUT('#000000', '#FFFFFF', 75);" onMouseOut="fade_IN_OUT('#FFFFFF', '#000000', 75);">TestLink</a>
Wenn du willst, kannst du mir den ganzen Quelltext schicken. Aber bitte dann mit Kommentaren, damit ich deinen Denkweg nachvollziehen kann. Oder du Postest ihn ins Form.
MfG Dmitri
PS.: Hast du keine Email-Adresse?