【发布时间】:2011-10-22 19:21:26
【问题描述】:
我希望有人可以向我展示高效的 JQuery 以在 div 类中的 4 种背景颜色之间进行动画处理。
我希望这些事件按时间触发,而不是点击或悬停。我看过关于悬停和切换的帖子,但作为一个不太精通 JQuery 的人,我不习惯在这里和那里复制和粘贴部分。
谢谢
【问题讨论】:
标签: jquery css colors jquery-animate
我希望有人可以向我展示高效的 JQuery 以在 div 类中的 4 种背景颜色之间进行动画处理。
我希望这些事件按时间触发,而不是点击或悬停。我看过关于悬停和切换的帖子,但作为一个不太精通 JQuery 的人,我不习惯在这里和那里复制和粘贴部分。
谢谢
【问题讨论】:
标签: jquery css colors jquery-animate
我不知道你的意思是动画淡入下一个,但这里有一个简单的快速示例,每 2 秒更改一次颜色。第一个示例不需要 jQuery。
function changeColor(curNumber){
curNumber++;
if(curNumber > 4){
curNumber = 1;
}
document.body.setAttribute('class', 'color' + curNumber);
setTimeout(function(){changeColor(curNumber)}, 2000);
}
changeColor(0);
更新动画颜色
如果您希望在类或背景颜色之间淡入淡出,第二个示例需要 Jquery UI。
function changeColor(element, curNumber){
curNumber++;
if(curNumber > 4){
curNumber = 1;
}
element.addClass('color' + curNumber, 1000);
// So previous classes get removed.
element.attr('class', 'color' + curNumber);
setTimeout(function(){changeColor(element, curNumber)}, 2000);
}
changeColor($('#testElement'), 0);
【讨论】:
我确信有更好的方法可以做到这一点,但只是向您展示一个简单的方法来完成这个......
http://jsfiddle.net/UnsungHero97/QLPbW/5/
你想使用window.setInterval()函数...
window.setInterval(rotateBG, 1000); // 1000 = 1 second
function rotateBG() {
// logic to rotate background
}
我希望这会有所帮助。
【讨论】: