Måske overkill, men fuldt funktionel uanset start- og slut-værdier:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<title>Skift baggrund</title>
<meta name="Generator" content="Stone's WebWriter 4">
<meta name="keywords" content="roenving,
http://www.eksperten.dk/spm/599682"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
var strt = "7AA067",slut = "FA7AB0",interval = 10;
var st,sl,act = total = timer = 0;
function setBG(){
document.body.style.backgroundColor = "#" + strt;
}
function skiftBG(tim){
st = retRGB(strt);
sl = retRGB(slut);
if(!st||!sl)return;
if(!tim.match(/^\d*(\.\d+)?$/))return;
total = Math.floor(+tim*1000);
timer = setInterval('chgBG()',interval);
document.body.style.backgroundColor = "#" + strt;
alert(total);
}
function chgBG(){
act += interval;
if(act>=total){
document.body.style.backgroundColor = "#" + slut;
clearInterval(timer);
act = total = timer = 0;
return;
}
var rgb = new Array();
for(i=0;3>i;i++){
rgb[i] = st[i] + Math.round((sl[i]-st[i])*act/total);
}
document.body.style.backgroundColor = 'rgb('+rgb[0]+','+rgb[1]+','+rgb[2]+')';
}
function retRGB(txt){
txt = txt.split("");
if(txt.length==3){
txt[5] = txt[4] = txt[2];
txt[3] = txt[2] = txt[1];
txt[1] = txt[0];
}else if(txt.length!=6)return null;
var rgb = new Array();
for(i=0;3>i;i++){
rgb[i] = 16 * parseInt(txt[2*i],16) + parseInt(txt[2*i+1],16)
}
return rgb;
}
</script>
<script language="javascript" type="text/javascript" src="tom.js"></script>
</head>
<body onload="setBG();">
<form id="minForm" name="minForm">
Sæt tid, som skiftet skal tage: <input id="minInput" name="minInput" type="text" value="Tom" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20">
<br><button onclick="skiftBG(this.form.minInput.value)">Skift baggrund</button>
</form>
</body>
</html>