2010-12-22 93 views
1

我想重置一些CSS,但点击后有一个延迟。由于某种原因,延迟似乎被忽略了。有任何想法吗?jquery延迟改变css

$("#closeMe").live("click", function() { 
    $("#selectContainer").fadeOut(function() { 
     scrollerPos = 1 
     $(".scroller").delay(3000).css({"margin-left":"0px"}); 
     $("#selectContainer img").delay(3000).css({"background-color":"#FFF"}); 
     $("#selectContainer img:eq(0)").delay(3000).css({"background-color":"#000"}); 
    }); 
}); 

回答

8

我不相信效果的东西css参与,所以它不会知道的队列。从delay docs

只有队列中的后续事件被延迟;例如,这不会延迟不使用效果队列的无参数表格.show().hide()

很确定css也在那个列表中。

虽然没问题,你可以这样做:

$("#closeMe").live("click", function() { 
    $("#selectContainer").fadeOut(function() { 
     scrollerPos = 1 
     setTimeout(function() { 
      $(".scroller").css({"margin-left":"0px"}); 
      $("#selectContainer img")..css({"background-color":"#FFF"}); 
      $("#selectContainer img:eq(0)").css({"background-color":"#000"}); 
     }, 3000); 
    }); 
}); 
4

使用setTimeout()而不是.delay()

setTimeout(resetCSS, 3000); 

function resetCSS() { 
    $(".scroller").css({"margin-left":"0px"}); 
    $("#selectContainer img").css({"background-color":"#FFF"}); 
    $("#selectContainer img:eq(0)").css({"background-color":"#000"}); 

} 
2

尝试

setTimeout(function(){ 
    $(".scroller").css({"margin-left":"0px"}); 
    $("#selectContainer img").css({"background-color":"#FFF"}); 
    $("#selectContainer img:eq(0)").css({"background-color":"#000"}); 
},3000); 
+0

真棒,谢谢。 。:) – 2012-11-07 15:05:22

1

引自.delay()

只有后续事件在队列 被延迟;

.css()方法不使用队列。

您需要使用超时

$("#closeMe").live("click", function() { 
    $("#selectContainer").fadeOut(function() { 
     scrollerPos = 1 
     setTimeout(function(){ 
       $(".scroller").delay(3000).css({"margin-left":"0px"}); 
       $("#selectContainer img").delay(3000).css({"background-color":"#FFF"}); 
       $("#selectContainer img:eq(0)").delay(3000).css({"background-color":"#000"}); 
     }); 
    }); 
}); 
1

css不是动画功能。它不能是delay编辑。

您可以使用animate为:

$(".scroller").delay(3000).animate({"marginLeft":0}, 0); 

但它仅与数字属性,而不是background-color工作。为此,您可以使用jQuery UI animate

jQuery UI效果核心扩展了animate函数以便能够为动画颜色以及。它大量使用类别转换功能,它是能够彩色动画以下属性:

的backgroundColor
borderBottomColor
borderLeftColor
borderRightColor
borderTopColor
颜色
outlineColor

+0

在那里放一个0持续时间会更好,否则它会真的变成动画。 – 2010-12-22 12:50:31