was heißt %?
Bonsai
- javascript
Ich habe bei SELF-HTML eine Seite gefunden auf der die Hintergrundfarbe langsam von schwarz nach weiß wechselt.
Ich hab den Quelltext eigentlich ganz gut verstanden aber eine if-Abfrage versteh ich nicht :
if (x2 % 16 == 0) { <-- was heisst x2 % 16??
x2 = 0;
x1 = x1 + 1;
}
Hab mir die Opreatoren nochmal angeguckt und es ausprobiert rauszufinden aber ich checks einfach nicht..
MfG Bonsai
Moin
der Rest beim Teilen
7 geteilt durch 3 ist 2 Rest 1
also
7%3=1
weiteres: SelfHTML
Gruß
rfb
Hallo,
if (x2 % 16 == 0) { <-- was heisst x2 % 16??
modulo.
Wenn der erste Operand geteilt durch zweiten keinen Rest ergibt, dann...
Grüsse
Cyx23
Warum schreibt man nicht stattdessen einfach :
if ( x2 == 16 ) {
...
}
x2 ist immer nur zwischen 0 und 15, also müsste auch das gleiche dabei rauskommen oder?ß
MfG Bonsai
Moin
x2 ist immer nur zwischen 0 und 15, also müsste auch das gleiche dabei rauskommen oder?
Ich habe natürlich keine Ahnung was für Werte dein x2 annehmen kann ohne den ganzen Quellcode zu sehen - aber zB 32%16 ergibt auch 0.
Gruß
rfb
Ohh tut mir leid
der Quelltex:
var X = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");
var x1 = 0, x2 = 0;
var i = 0;
function setColor () {
document.bgColor = "#" + X[x1] + X[x2] + X[x1] + X[x2] + X[x1] + X[x2];
x2 = x2 + 1;
if (x2 % 16 == 0) {
x2 = 0;
x1 = x1 + 1;
}
i++;
if (i < 256)
window.setTimeout("setColor()", 10);
}
also ich denke man kann auch einfach x2 == 16 schreiben oder?ß
MfG Bonsai
Hallo,
also ich denke man kann auch einfach x2 == 16 schreiben oder?ß
sieht allerdings so aus, und irgendeine Form von Browserweiche scheint
es auch nicht zu sein.
Grüsse
Cyx23
Tja ist ja egal
wenigstens hab ich es verstanden^^
Danke an euch beide
MfG Bonsai
Hallo,
Tja ist ja egal
über Farbangaben per rgb ginge es vielleicht auch, und dann gibt es
wohl auch Möglichkeiten die Farbformate zu konvertieren.
Aber so hatte ich etwas ähnliches mal um 1998 geschrieben:
var tim=20;
bgcol=new Array('00','33','66','99','cc','ff');
function setbg(nr){ if(document.body){
document.body.bgColor="#"+bgcol[nr]+bgcol[nr]+bgcol[nr];}
else{document.bgColor="#"+bgcol[nr]+bgcol[nr]+bgcol[nr];}}
function callfbg(){num=0;fadec=window.setInterval("fadebg();",tim);}
function fadebg(){setbg(num);num++;if(num>=6)window.clearInterval(fadec);}
window.onload=function(){ callfbg(); }
Grüsse
Cyx23
Hallo Bonsai,
var X = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");
var x1 = 0, x2 = 0;
var i = 0;
function setColor () {
document.bgColor = "#" + X[x1] + X[x2] + X[x1] + X[x2] + X[x1] + X[x2];
x2 = x2 + 1;
if (x2 % 16 == 0) {
x2 = 0;
x1 = x1 + 1;
}
i++;
if (i < 256)
window.setTimeout("setColor()", 10);
}
also ich denke man kann auch einfach x2 == 16 schreiben oder?ß
Für dein Vorhaben der Umwandlung einer Dezimal- in eine Hexadezimalzahl könnte man auch einfach die Methode toString(16) nehmen.
Gruß Gernot
Tach,
Warum schreibt man nicht stattdessen einfach :
if ( x2 == 16 ) {
...
}
weil es vermutlich ein Programmierer geschrieben hat, der das Problem einmal gelöst hat und dann immer wieder den selben Code für diese Art Problem verwendet.
mfg
Woodfighter
Hallo Bonsai(Baum?)
ganz einfach. Der rest wird ermittelt der durch eine teilung übrig bleibt. 4%2 Rest 0 5/2 Rest 1.