jQuery CSS在其后的命令后执行

时间:2015-10-06 09:20:43

标签: jquery css

我有一个容器和一个内部div占用容器宽度的100%。我希望容器能够立即扩展,但是将内部div保持在其当前尺寸,然后使用CSS过渡逐渐扩展它。这是原始的JS Fiddle no. 1

因为这似乎不起作用(为什么?),即使应该立即应用CSS,我也会尝试使用此JS Fiddle no. 2延迟容器上的addClass,这不起作用任

最后,在向前一个小提琴设置较长的延迟后,它可以使用1000毫秒而不是100毫秒。所以.css()在1000ms后生效,但在100ms后没有生效?!

有谁可以告诉我为什么.css()函数的行为就好像异步工作一样?

1 个答案:

答案 0 :(得分:5)

要使#1生效,您需要使用此代码,从.css()中取出setTimeout

$('.inner').css({
  width: $('.inner').width() + 'px',
  height: $('.inner').height() + 'px'
});
setTimeout(function() {
  $('.container').addClass('big');
}, 1000);

您已将setTimeout内的所有内容换成1000毫秒,而不是$(function () {});

小提琴:http://jsfiddle.net/m7k9mre8/