<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>背景颜色渐变</title>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
</head>
<body>
<input id="Button1" type="button" value="button" onclick="tggg()" />
<script>
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
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>
<div style="width: 600px; height: 200px; border: 1px solid red;" id="asd">
编程素材网欢迎各位光临--http://www.1sucai.cn
</div>
</body>
</html>
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有