[thelist] Javascript (Math Skills Needed)
Jon Hughes
hughesj at firemtn.com
Wed Aug 8 13:29:41 CDT 2007
> Jon,
>
> With a few substitutions (untested), should converge from
> original (red,green,blue) to target (red2,green2,blue2):
>
> function digitalfilter(a,b,denominator) {
> var c = a + (b - a)/denominator;
> if (c < b)
> c = Math.ceil(c);
> else
> c = Math.floor(c);
> return c;
> }
>
> function fader(element,red,green,blue,red2,green2,blue2) {
> if (element.fade) {
> clearTimeout(element.fade);
> }
> element.style.backgroundColor = rgb("+red+","+green+","+blue+")";
> if (red == red2 && green == green2 && blue == blue2) {
> return;
> }
> var newred = digitalfilter(red,red2,10);
> var newgreen = digitalfilter(green,green2,10);
> var newblue = digitalfilter(blue,blue2,10);
> var repeat = function() {
> fader(element,newred,newgreen,newblue,red2,green2,blue2)
> };
> element.fade = setTimeout(repeat,100);
> }
Phil,
It works great!
One small change to your code, though... there should be a '"' before
"rgb" so:
element.style.backgroundColor = "rgb("+red+","+green+","+blue+")";
Thanks a lot!
- Jon
More information about the thelist
mailing list