最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
jQuery实现的背景颜色渐变动画效果示例
时间:2022-06-25 17:03:32 编辑:袖梨 来源:一聚教程网
代码如下 | 复制代码 |
"" >
src= "jquery-1.7.2.min.js" >
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
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++;
}
}
|
相关文章
- 地下城堡4骑士与破碎编年史初光神官有哪些流派 09-17
- 嘟嘟脸恶作剧克萝伊技能怎么样 09-17
- 新三国志曹操传驯马场有什么玩法 09-17
- 全境封锁曙光武器怎么获取 09-17
- 鹅鸭杀丧葬者如何玩 09-17
- 剑与远征启程沙利叶强技能怎么样 09-17