jquery - 改变div的背景颜色一段时间,然后返回到上一个

标签 jquery html background-color

我的页面有很多 div。我需要在给定时间内更改一组定义的 div 的背景色。该集合由它所具有的类定义,例如

<div id="A00010002-1" class="playerbox winner ITTTI00582" style="background-color: ......>

本例中的类是ITTTI00582。页面上还会有其他一些 div 共享同一个类。该类是在运行时生成的,因此它不在 CSS 文件中支持。

我需要在函数中使用此类为所有 div 着色,然后将颜色恢复为之前的颜色。这不起作用:

$('.' + idclass).css('background-color', '#FFFF00'); 

此外,一旦分配了颜色,如何删除该分配?

最佳答案

您可以使用setTimeout()在给定的延迟后执行一些代码。试试这个:

var $elements = $('.' + idclass).addClass('highlight');
setTimeout(function() {
    $elements.removeClass('highlight')
}, 5000); // 5000ms = 5 seconds

请注意此处 addClass()removeClass() 的使用。这是更好的做法,因为它将样式逻辑与 JS 代码分开,并且在删除类时更容易将元素重置为其原始状态。

这是一个工作示例:

var idclass = 'ITTTI00582';

var $elements = $('.' + idclass).addClass('highlight');
setTimeout(function() {
  $elements.removeClass('highlight')
}, 5000); // 5000ms = 5 seconds
.playerbox.winner { background-color: grey; }
.playerbox.winner.highlight { background-color: yellow; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="A00010002-1" class="playerbox winner ITTTI00581">ITTTI00581</div>
<div id="A00010002-1" class="playerbox winner ITTTI00582">ITTTI00582</div>
<div id="A00010002-1" class="playerbox winner ITTTI00583">ITTTI00583</div>
<div id="A00010002-1" class="playerbox winner ITTTI00584">ITTTI00584</div>

关于jquery - 改变div的背景颜色一段时间,然后返回到上一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42577292/

相关文章:

javascript - JS 无法正确显示已加载的页面

javascript - 如何仅将CSS类应用于图像

ios - CreateJS EaselJS在iOS中绘制位图视频

javascript - 修复了在 chrome for android 上滚动后元素 Y 位置计算错误的问题

javascript - 删除元素及其所有子元素的内联 CSS 的最快方法?

html - 如何设置表格背景图片

css - 结合背景图像和背景颜色与透明元素

javascript - 将过滤器 AND 替换为 OR

html - 是否可以为单个 html 元素设置两种背景颜色?

javascript - 对 HTML 表格进行排序