0
jQuery(document).ready(function(){
    jQuery('div').css('background','#fff').delay(12000).css('background','#000');
});

嗨伙计们..我想知道为什么这不起作用..我正在尝试设置背景的持续时间并在特定时间后更改其颜色。

4

4 回答 4

5

你可以试试 setTimeout

jQuery(document).ready(function(){
    var divs = jQuery('div').css('background','#fff')
    setTimeout(function(){ divs.css('background','#000'); }, 12000);
});
于 2013-07-08T02:16:07.933 回答
3

你可以用纯 CSS 做到这一点

http://jsfiddle.net/austinpray/Q8TVX/

 body {
  animation:color-change 5s 1;
  -webkit-animation:color-change 5s 1; /* Safari and Chrome */
  animation-fill-mode: forwards;
  -webkit-animation-fill-mode: forwards;
}

@keyframes color-change
{
  0% {background:#fff;}
  90% {background:#fff;}
  100% {background:#000;}
}

@-webkit-keyframes color-change /* Safari and Chrome */
{
  0% {background:#fff;}
  90% {background:#fff;}
  100% {background:#000;}
}

您可以更改动画属性以获得所需的效果。

http://caniuse.com/#feat=css-animation

于 2013-07-08T02:19:33.380 回答
1

由于.delay()仅适用于 jQuery 的标准效果队列或自定义队列,您可能只想使用setTimeout()调用。

jQuery(document).ready(function(){
    jQuery('div').css('background','#fff')
    setTimeout( function(){ jQuery('div').css('background','#000'); }, 12000);
});

jsFiddle 示例(三秒超时以更快地查看)

于 2013-07-08T02:17:05.540 回答
0

jQuery 延迟函数将执行队列中的后续函数。所以你必须排队:

$('div').css('background','#fff').delay(12000).queue(function(nxt){
     $(this).css('background','#000');
     nxt(); // continue the queue
 });

试试jsfiddle 演示

希望这对你有帮助。

于 2013-07-08T02:38:54.927 回答