【www.bbyears.com--jquery】
代码如下
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
"Content-Type"
content=
"text/html; charset=UTF-8"
>
背景颜色渐变
<script type=
"text/javascript"
src=
"jquery-1.7.2.min.js"
></script>
"Button1"
type=
"button"
value=
"button"
onclick=
"tggg()"
/>
<script>
word">function
tggg() {
//$("#asd").css({ "background-color": "red" }).show().fadeOut(500);
fadeColor(
{ r: 0, g: 255, b: 0 },
//star color
{r: 255, g: 255, b: 255 },
//end color
word">function
(color) { document.getElementById(
"asd"
).style.backgroundColor = color; }, 1, 10);
}
//所有代码的执行时间只有24毫秒左右。
function
fadeColor(from, to, callback, duration, totalFrames) {
//用一个函数来包裹setTimeout,根据帧数来确定延时
function
doTimeout(color, frame) {
setTimeout(
function
() {
try
{
callback(color);
}
catch
(e) { JSLog.write(e); }
}, (duration * 1000 / totalFrames) * frame);
//总持续秒数/每秒帧数*当前帧数=延时(秒),再乘以1000作为延时(毫秒)
}
// 整个渐变过程的持续时间,默认为1秒
var
duration = duration || 1;
// 总帧数,默认为持续秒数*15帧,也即每秒15帧
var
totalFrames = totalFrames || duration * 15;
var
r, g, b;
var
frame = 1;
//在第0帧设置起始颜色
doTimeout(
'rgb('
+ from.r +
','
+ from.g +
','
+ from.b +
')'
, 0);
//计算每次变化所需要改变的rgb值
while
(frame < totalFrames + 1) {
r = Math.ceil(from.r * ((totalFrames - frame) / totalFrames) + to.r * (frame / totalFrames));
g = Math.ceil(from.g * ((totalFrames - frame) / totalFrames) + to.g * (frame / totalFrames));
b = Math.ceil(from.b * ((totalFrames - frame) / totalFrames) + to.b * (frame / totalFrames));
// 调用本frame的doTimeout
doTimeout(
'rgb('
+ r +
','
+ g +
','
+ b +
')'
, frame); frame++;
}
}
</script>
"width: 600px; height: 200px; border: 1px solid red;"
id=
"asd"
>
脚本之家欢迎各位光临--http:
//www.jb51.net