使用 Timer JQuery 更改背景颜色 CSS

Posted

技术标签:

【中文标题】使用 Timer JQuery 更改背景颜色 CSS【英文标题】:Change Background Color CSS with Timer JQuery 【发布时间】:2011-10-22 19:21:26 【问题描述】:

我希望有人可以向我展示高效的 JQuery 以在 div 类中的 4 种背景颜色之间进行动画处理。

我希望这些事件按时间触发,而不是点击或悬停。我看过关于悬停和切换的帖子,但作为一个不太精通 JQuery 的人,我不习惯在这里和那里复制和粘贴部分。

谢谢

【问题讨论】:

【参考方案1】:

我不知道你的意思是动画淡入下一个,但这里有一个简单的快速示例,每 2 秒更改一次颜色。第一个示例不需要 jQuery。

Live Demo

function changeColor(curNumber)
    curNumber++;

    if(curNumber > 4)
        curNumber = 1;
    
    document.body.setAttribute('class', 'color' + curNumber);
    setTimeout(function()changeColor(curNumber), 2000);  


changeColor(0);

更新动画颜色

如果您希望在类或背景颜色之间淡入淡出,第二个示例需要 Jquery UI。

Demo 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);

【讨论】:

嘿,我实际上是在搜索时看到这篇文章的。我需要它用 JQuery 制作动画,以便它淡入淡出每种颜色。 @RCNeil 查看我的更新,您需要取消 jquery UI 以添加动画以添加类或动画背景颜色。 yessssssss 这会很好用!有没有办法一遍又一遍地重复这个功能? 上述函数一旦启动将永远重复,超时只是保持设置为 2 秒,因此它永远不会停止,或者您也可以使用 setInterval(function(),time) 这将永远重复,无需重置超时。 不错。是的,它只是在演示中没有这样做。我把它放在一个真实的网站上,效果很好!非常感谢。【参考方案2】:

更新

我确信有更好的方法可以做到这一点,但只是向您展示一个简单的方法来完成这个......

http://jsfiddle.net/UnsungHero97/QLPbW/5/


你想使用window.setInterval()函数...

window.setInterval(rotateBG, 1000); // 1000 = 1 second

function rotateBG() 
    // logic to rotate background

我希望这会有所帮助。

【讨论】:

感谢您的提示!我会将什么作为“旋转背景的逻辑”放置?

以上是关于使用 Timer JQuery 更改背景颜色 CSS的主要内容,如果未能解决你的问题,请参考以下文章

使用jquery动态更改背景颜色后,背景颜色的CSS悬停选择器不起作用

使用 jquery 动态更改背景颜色

JQuery 更改 ASP:GridView 行的背景颜色

在悬停时使用 JQuery 更改背景颜色

Dreamweaver CS6怎么更改界面背景色

使用jQuery更改表格单元格的背景颜色