等到jQuery.fadeIn()启动但不一定完成

时间:2012-11-14 12:37:29

标签: jquery html fadein

我正在努力解决如何做到这一点。我在一些jQuery UI选项卡中有一些jqGrid元素。为了确保网格填充100%的宽度,我写了一个简单的window.resize事件。

当用户点击按钮时,我淡出标签,清除并重新加载jqGrids,然后将标签重新淡入。你可以看到它在这里工作:http://jsfiddle.net/qvY9s/7/(点击'重新加载'按钮看它工作了。)

但是,我希望网格一旦开始变得可见就调整大小以填充标签。如果我在选项卡上调用$(window).resize()后立即调用$(..).fadeIn(),那么它就不起作用 - 我猜是因为动画尚未启动且网格未显示。

无论如何在淡入淡出效果开始后触发window.resize

(如果我能提供帮助,我不想等到最后。)

4 个答案:

答案 0 :(得分:2)

你可以设置一个超时直接调用resize函数:

$('#container').fadeIn(2000);
setTimeout(custJqGResize,10);

答案 1 :(得分:1)

你可以在做之前延迟任意时间:

setTimeout(function(){$(window).resize()},100);

更新了小提琴:http://jsfiddle.net/qvY9s/8/

答案 2 :(得分:1)

这很好用,在loadGrids()函数的顶部添加这一行:

$('#container').show().css('visible', false);

想法是让容器不可见但在淡化它之前耗尽它的正常布局空间

jsFiddle:http://jsfiddle.net/qvY9s/9/

答案 3 :(得分:0)

您是否尝试过onmousedown和onmouseup事件? onmousedown - >调整 onmouseup - >淡入