Hallo,
bzw. hier noch die Konfiguration von Startwert und Range, in dem die jeweilige Farbe variieren soll als Objekt-Parameter an die Funktion übergeben:
var MyBgColorChanger;
MyBgColorChanger = {
red : false,
green : false,
blue : false,
bgElem : false,
createColorObj : function (value, range) {
return {
"value": value,
"tmpValue" : value,
"range" : range,
"goDown" : true
};
},
init : function (bgElem, red, green, blue) {
this.bgElem = bgElem;
this.red = this.createColorObj(red.start, red.range);
this.green = this.createColorObj(green.start, green.range);
this.blue = this.createColorObj(blue.start, blue.range);
},
getValue : function (colorName) {
if (this[colorName].tmpValue < this[colorName].value - this[colorName].range) {
this[colorName].goDown = false;
} else if (this[colorName].tmpValue > this[colorName].value) {
this[colorName].goDown = true;
}
if (this[colorName].goDown) {
this[colorName].tmpValue -= 1;
} else {
this[colorName].tmpValue += 1;
}
return this[colorName].tmpValue;
},
bgColorChange : function () {
var red, green, blue;
red = this.getValue("red");
green = this.getValue("green");
blue = this.getValue("blue");
this.bgElem.style.backgroundColor = "RGB(" + red + "," + green + "," + blue + ")";
}
};
window.onload = function () {
var myBgElem;
myBgElem = document.getElementsByTagName("body")[0];
MyBgColorChanger.init(myBgElem, {start : 255, range : 55}, {start : 168, range : 10}, {start : 136, range : 16});
window.setInterval(function () {MyBgColorChanger.bgColorChange(); }, "120");
};
Gruß
jobo