Aron
02.05.2002, 22:58
Hallo Leute,
maulwurf und ich hatten gestern nix zu tun. Als
Beschäftigungstherapie haben wir einen kleinen
Farbfader geschrieben.
<script language="javascript">
var i;
var nowColorR=153;
var nowColorG=153;
var nowColorB=153;
var nowStepsR;
var nowStepsG;
var nowStepsB;
var plusminusR;
var plusminusG;
var plusminusB;
var schritte;
var zielColorRSteps;
var zielColorGSteps;
var zielColorBSteps;
// Verändert die Farbe
function setColor() {
if(i>eval(schritte)-1)window.clearInterval(aktiv)
else{
if(nowStepsR<zielColorRSteps){
nowStepsR++;
nowColorR = nowColorR + plusminusR;
}
if(nowStepsG<zielColorGSteps){
nowStepsG++
nowColorG = nowColorG + plusminusG;
}
if(nowStepsB<zielColorBSteps){
nowStepsB++;
nowColorB = nowColorB + plusminusB;
}
durchgange++;
if(nowColorR<16){
digga1="0";
} else {
digga1="";
}
if(nowColorG<16){
digga2="0";
} else {
digga2="";
}
if(nowColorB<16){
digga3="0";
} else {
digga3="";
}
document.bgColor="#" + digga1 + dx(nowColorR) + digga2 + dx(nowColorG) + digga3 + dx(nowColorB);
i++;
}
}
// Gibt ein positives Ergebnis zurück
function makePos (zahl){
if(zahl<0){zahl=zahl*-1;}
return zahl;
}
// Gibt 1 oder -1 zurück, jenachdem ob zahl1 oder zahl2 höher ist
function checkZahl (zahl1,zahl2){
if(zahl1<zahl2){
return -1;
}else{
return 1;
}
}
// Prüft, um "wieviel" eine Farbe verändert werden muss und
// führt alle 25/1000 sec die Funktion setColor aus
function cColor()
{
reset();
zielColorRSteps = makePos(eval(document.form.rein.value) - nowColorR);
plusminusR = checkZahl(eval(document.form.rein.value),nowColorR);
zielColorGSteps = makePos(eval(document.form.rein2.value) - nowColorG);
plusminusG = checkZahl(eval(document.form.rein2.value),nowColorG);
zielColorBSteps = makePos(eval(document.form.rein3.value) - nowColorB);
plusminusB = checkZahl(eval(document.form.rein3.value),nowColorB);
vergleich1=Math.max(zielColorRSteps,zielColorGSteps);
schritte=Math.max(vergleich1,zielColorBSteps);
aktiv=window.setInterval("setColor()",25);
}
// Setzt Variablen auf Null
function reset(){
i=0;
durchgange = 0;
nowStepsR = 0;
nowStepsG = 0;
nowStepsB = 0;
plusminusR = 0;
plusminusG = 0;
plusminusB = 0;
schritte = 0;
zielColorRSteps = 0;
zielColorGSteps = 0;
zielColorBSteps = 0;
}
// Rechnet von Dezimal nach Hexadezimal
function dx(d)
{
max = Math.pow(16,8);
var z = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
var x = "";
var i = 1, v = d, r = 0;
while(v > 15)
{ v = Math.floor(v / 16); i++; }
v = d;
for(j=i;j>=1;j--)
{
x = x + z[Math.floor(v / Math.pow(16,j-1))];
v = v - (Math.floor(v / Math.pow(16,j-1)) * Math.pow(16,j-1));
}
return x;
}
</script>
angucken (http://www.coding-board.de/tutorials/javascript/farbFader/)
Viel Spaß dabei!
Vllt kann man das ja noch optimieren :rolleyes::) ?!?
peace
maulwurf und ich hatten gestern nix zu tun. Als
Beschäftigungstherapie haben wir einen kleinen
Farbfader geschrieben.
<script language="javascript">
var i;
var nowColorR=153;
var nowColorG=153;
var nowColorB=153;
var nowStepsR;
var nowStepsG;
var nowStepsB;
var plusminusR;
var plusminusG;
var plusminusB;
var schritte;
var zielColorRSteps;
var zielColorGSteps;
var zielColorBSteps;
// Verändert die Farbe
function setColor() {
if(i>eval(schritte)-1)window.clearInterval(aktiv)
else{
if(nowStepsR<zielColorRSteps){
nowStepsR++;
nowColorR = nowColorR + plusminusR;
}
if(nowStepsG<zielColorGSteps){
nowStepsG++
nowColorG = nowColorG + plusminusG;
}
if(nowStepsB<zielColorBSteps){
nowStepsB++;
nowColorB = nowColorB + plusminusB;
}
durchgange++;
if(nowColorR<16){
digga1="0";
} else {
digga1="";
}
if(nowColorG<16){
digga2="0";
} else {
digga2="";
}
if(nowColorB<16){
digga3="0";
} else {
digga3="";
}
document.bgColor="#" + digga1 + dx(nowColorR) + digga2 + dx(nowColorG) + digga3 + dx(nowColorB);
i++;
}
}
// Gibt ein positives Ergebnis zurück
function makePos (zahl){
if(zahl<0){zahl=zahl*-1;}
return zahl;
}
// Gibt 1 oder -1 zurück, jenachdem ob zahl1 oder zahl2 höher ist
function checkZahl (zahl1,zahl2){
if(zahl1<zahl2){
return -1;
}else{
return 1;
}
}
// Prüft, um "wieviel" eine Farbe verändert werden muss und
// führt alle 25/1000 sec die Funktion setColor aus
function cColor()
{
reset();
zielColorRSteps = makePos(eval(document.form.rein.value) - nowColorR);
plusminusR = checkZahl(eval(document.form.rein.value),nowColorR);
zielColorGSteps = makePos(eval(document.form.rein2.value) - nowColorG);
plusminusG = checkZahl(eval(document.form.rein2.value),nowColorG);
zielColorBSteps = makePos(eval(document.form.rein3.value) - nowColorB);
plusminusB = checkZahl(eval(document.form.rein3.value),nowColorB);
vergleich1=Math.max(zielColorRSteps,zielColorGSteps);
schritte=Math.max(vergleich1,zielColorBSteps);
aktiv=window.setInterval("setColor()",25);
}
// Setzt Variablen auf Null
function reset(){
i=0;
durchgange = 0;
nowStepsR = 0;
nowStepsG = 0;
nowStepsB = 0;
plusminusR = 0;
plusminusG = 0;
plusminusB = 0;
schritte = 0;
zielColorRSteps = 0;
zielColorGSteps = 0;
zielColorBSteps = 0;
}
// Rechnet von Dezimal nach Hexadezimal
function dx(d)
{
max = Math.pow(16,8);
var z = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
var x = "";
var i = 1, v = d, r = 0;
while(v > 15)
{ v = Math.floor(v / 16); i++; }
v = d;
for(j=i;j>=1;j--)
{
x = x + z[Math.floor(v / Math.pow(16,j-1))];
v = v - (Math.floor(v / Math.pow(16,j-1)) * Math.pow(16,j-1));
}
return x;
}
</script>
angucken (http://www.coding-board.de/tutorials/javascript/farbFader/)
Viel Spaß dabei!
Vllt kann man das ja noch optimieren :rolleyes::) ?!?
peace