frage zu array!
dietttz
- javascript
0 Dmitri Rettig0 dietttz0 Dmitri Rettig0 Dietttz0 Dmitri Rettig0 Dietttz
hi!
eigentlich müsste ich anstatt diesem hier:
colorX = new Array(colorFROM, colorTO);
var i = colorX[0, 1];
auch einfach nur das hier machen oder?
var i[0] = colorFROM;
var i[1] = colorTO;
mfg dietttz
Hi,
eigentlich müsste ich anstatt diesem hier:
colorX = new Array(colorFROM, colorTO);
var i = colorX[0, 1];
auch einfach nur das hier machen oder?
var i[0] = colorFROM;
var i[1] = colorTO;
Hat sich an der JavaScript Syntax in den letzten zwei Jahren etwas geändert, ohne dass ich es gemerkt habe?
colorX = new Array(colorFROM, colorTO);
var i = colorX[0, 1];
Das hier ist mir völlig unbekannt. Woher hast du den Code?
MfG Dmitri
Hat sich an der JavaScript Syntax in den letzten zwei Jahren etwas geändert, ohne dass ich es gemerkt habe?
ich denke nicht ;)
Das hier ist mir völlig unbekannt. Woher hast du den Code?
aus meinem gedächtnis oder stimmt da was nicht?
mfg
Hi,
wenn du einfach zwei Farben in einem Array namens i abspeichern willst, dann:
i = new Array(1); // bzw. i = new Array(); für unbekannt wieviele Farben.
i[0] = FarbeFROM;
i[1] = FarbeTO;
Natürlich muss man vorher FarbeFROM und FarbeTO definiert haben.
MfG Dmitri
Vielen Dank Dimitri!
Also, ich erklär's dir mal vereinfacht...
Ich möchte ein Link-FadeIN/OUT machen.
Ich weiß, es gibt schon vorgeschriebene, die ich nehmen kann, aber ich möchte diesen selber über die möglichst einfachste Weise machen.
Ich habe also einen Link.
<a href="index.php" onMouseOver="fade_IN_OUT(#000000, #FFFFFF, 75);" onMouseOut="fade_IN_OUT(#FFFFFF, #000000, 75);">TestLink</a>
Das Script sieht bis jetzt folgendermaßen aus:
<script type="text/javascript">
<!--
function fade_IN_OUT(colorFROM, colorTO, step) {
colorX = new Array(colorFROM, colorTO);
var i = colorX[0, 1];
var red = colorX[i].substr(1, 2);
var green = colorX[i].substr(3, 4);
var blue = colorX[i].substr(5, 6);
// Color: Convert variables to colors.
color = Math.floor((red) (green) (blue) / 16)
// - - - - - - - - - -
// Color: Max. colors = Black/White
if(color < 0) {
return "00"
}
if(color > 255) {
return "FF"
}
// - - - - - - - - - -
}
//-->
</script>
Bitte guck es dir mal an!
Wenn es dir nicht zusagt, mach mich bitte auf Fehler aufmerksam!
MfG Dietttz :-)
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?
Nein, habe leider keine eMail!
Also, ähh... das war der ganze Quellcode.
Ich hab auch erst heute morgen damit begonnen...
Mhh, wäre nett, wenn du mir helfen würdest. Natürlich nur wenn du Lust/Zeit hast.
Also, wie ich annehme, verstehst du was ich erreichen will.
Ein FADE-Effekt.
Im Link stehen also die Farben (ich hätte die Farben auch als Variablen im Code speichern können, aber fast jeder Link wird einen anderen Übergangsfarbwert und andere Übergangsschritte erhalten).
Was auch eine schöne Funktion wäre, wenn man mit der Maus die ersten zB. 2 Sek. auf dem Link ist sich nur die Farbe ändert und dann der eigentliche Effekt zustande kommt. Müsste irgendwas mit setTimeout sein oder? Und der Effekt sollte nicht nur einmal von Schwarz nach Weiß gehen, sondern solange wie man auf dem Link ist also immer S/W, W/S, S/W usw. Aber wie gesagt, dieser 2 sekündige "Normallink" sollte nur kommen, wenn man den Linkberührt, die S/W Schleife sollte aber erst beim Fade Effekt auftauchen.
Hoffe, du hast mich einigermaßen verstanden.
Wäre schön wenn du mir hilfst!
MfG Dietttz