Try this out:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Text Fader - Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
/* Text Fader Script ©2008 John Davenport Scheuer
* This notice must remain for legal use
* As first seen in http://www.dynamicdrive.com/forums/ */
function fadetext(id, init, targ, speed){
var f=fadetext;
if(f[id]&&f[id].t)
clearTimeout(f[id].t)
if(init){
f[id]={};
f[id].r=init[0],f[id].g=init[1],f[id].b=init[2];
var t=255; f[id].m=[]
f[id].m[0]=f[id].r<targ[0]? -1 : f[id].r>targ[0]? 1 : 0;
f[id].m[1]=f[id].g<targ[1]? -1 : f[id].g>targ[1]? 1 : 0;
f[id].m[2]=f[id].b<targ[2]? -1 : f[id].g>targ[2]? 1 : 0;
for (var i = 0; i < init.length; i++)
if(init[i]-targ[i])
t=Math.min(t,Math.abs(init[i]-targ[i]));
f[id].rt=Math[f[id].m[0]>0?'floor':'ceil']((f[id].r-targ[0])/t);
f[id].gt=Math[f[id].m[1]>0?'floor':'ceil']((f[id].g-targ[1])/t);
f[id].bt=Math[f[id].m[2]>0?'floor':'ceil']((f[id].b-targ[2])/t);
}
if(f[id].r==targ[0]&&f[id].g==targ[1]&&f[id].b==targ[2])//If color is back
return; //exit
if(f[id].m[0]&&f[id].r>targ[0]*f[id].m[0])
f[id].r=Math[f[id].m[0]>0?'max':'min'](f[id].r-f[id].rt,targ[0]);// increase/decrease red darkness
if(f[id].m[1]&&f[id].g>targ[1]*f[id].m[1])
f[id].g=Math[f[id].m[1]>0?'max':'min'](f[id].g-f[id].gt,targ[1]);// increase/decrease green darkness
if(f[id].m[2]&&f[id].b>targ[2]*f[id].m[2])
f[id].b=Math[f[id].m[2]>0?'max':'min'](f[id].b-f[id].bt,targ[2]);// increase/decrease blue darkness
document.getElementById(id).style.color="rgb("+f[id].r+","+f[id].g+","+f[id].b+")";
f[id].t=setTimeout(function(){fadetext(id, false, targ, speed);},speed);
}
</script>
</head>
<body>
<div id="sample" style="color:rgb(0, 128, 0);">
Hey there!
</div>
<input type="button" onclick="fadetext('sample', [255,255,255], [0,128,0], 20);" value="fade">
<div id="sample2" style="background-color:rgb(0, 128, 0);color:white;">
Hey there!
</div>
<input type="button" onclick="fadetext('sample2', [0,128,0], [255,255,255], 20);" value="fade">
</body>
</html>
Bookmarks