使用Timer JQuery更改背景颜色CSS
我希望有人可以向我展示高效的JQuery,以便在div类中的4种背景颜色之间制作动画。
我希望这些事件能够被时间触发,而不是点击或hover。 我已经看过hover和切换的post,但作为一个不太精通JQuery的人,我觉得在这里和那里复制和粘贴部件感觉不舒服。
谢谢
我不知道你是否意味着动画就像褪色到下一个,但这是一个简单的快速例子,每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。
演示2
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);
UPDATE
我确信有更好的方法可以做到这一点,但只是为了向您展示一种简单的方法来实现这一目标……
http://jsfiddle.net/UnsungHero97/QLPbW/5/
你想使用window.setInterval()函数…
window.setInterval(rotateBG, 1000); // 1000 = 1 second function rotateBG() { // logic to rotate background }
我希望这有帮助。