<html>
<head>
<style>
#bg{
position:absolute;
left:0;
top:0;
width:100%;
height:100%;
background:#000;
font-size:40px;
color:#ccc;
text-align:center;
}
#colorLine{
width:400px;
}
#colorLine div{
width:5px;
height:2px;
float:left;
overflow:hidden;
}
</style>
</head>
<body>
<table id="bg">
<tr height="300">
<td>
彩虹进度条
</td>
</tr>
<tr height="100">
<td align=center>
<div id="colorLine">
</div>
</td>
</tr>
<tr>
<td></td>
</tr>
</table>
</body>
</html>
<script>
var IE6 = navigator.userAgent.toLowerCase().indexOf('ie')+1 &&
/MSIE (5\.5|6\.)/i.test(navigator.userAgent);
var CL = document.getElementById('colorLine');
//创建彩虹条
function makeCLine(){
var r = 255;
var g = 0;
var b = 0;
var step = 1;
// 1. 增加绿色
// 2. 减少红色
// 3. 增加蓝色
// 4. 减少绿色
for(var i = 0; i < 80; i ++ ){
var node = document.createElement('div');
if(g > 255 && step == 1)
step = 2;
if(r < 0 && step == 2)
step = 3;
if(b > 255 && step == 3)
step = 4;
node.style.backgroundColor = 'rgb(' + r + ',' + g + ',' + b + ')';
CL.appendChild(node);
if(step == 1)
g += 14;
if(step == 2)
r -= 14;
if(step == 3)
b += 14;
if(step == 4)
g -= 14;
}
var oNodeL = IE6 ? CL.firstChild : CL.firstChild.nextSibling;
var oNodeR = CL.lastChild;
//制作两端渐变效果
for(var i = 0; i < 20; i ++ ){
oNodeL.style.cssText += ';opacity:'+ (0.05 * i) +
';filter:Alpha(Opacity=' + (0.05 * i * 100) +')';
oNodeR.style.cssText += ';opacity:'+ (0.05 * i) +
';filter:Alpha(Opacity=' + (0.05 * i * 100) +')';
oNodeL = oNodeL.nextSibling;
oNodeR = oNodeR.previousSibling;
}
}
//移动彩虹条
function makeCLMove()
{
var colors = [];
for(var i = CL.lastChild; i; i = i.previousSibling)
{
if(i.style)
colors.unshift(i.style.backgroundColor);
}
var flag = 1;
var j = 0;
setInterval(function()
{
var sTempColor = CL.lastChild.style.backgroundColor;
var oNodeL = IE6 ? CL.firstChild : CL.firstChild.nextSibling;
for(var i = CL.lastChild; i; i = i.previousSibling)
{
if(i.previousSibling && i.previousSibling.style)
i.style.backgroundColor = i.previousSibling.style.backgroundColor;
}
if(j > (colors.length - 1))
flag = 0;
else if(j < 1)
flag = 1;
oNodeL.style.backgroundColor = flag ? colors[j ++ ] : colors[j -- ];
}, 1);
}
makeCLine();
makeCLMove();
</script>