0

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

当用户单击一个按钮时,我会淡出标签,清除并重新加载 jqGrids,然后将标签淡入。您可以在这里看到这一切:http: //jsfiddle.net/qvY9s/7/(单击“重新加载'按钮以查看它的工作)。

但是,我希望网格在开始变得可见时立即调整大小以填充选项卡。如果我$(window).resize()在调用选项卡后立即调用$(..).fadeIn(),那么它不起作用 - 我猜是因为动画还没有开始并且网格还没有变得可见。

是否有window.resize在淡入淡出效果开始后触发?

(如果我能帮上忙,我不想等到最后。)

4

4 回答 4

2

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

$('#container').fadeIn(2000);
setTimeout(custJqGResize,10);
于 2012-11-14T12:45:42.453 回答
1

您可以在执行此操作之前延迟任意时间:

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

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

于 2012-11-14T12:42:27.110 回答
1

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

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

想法是使容器不可见,但在淡入之前用完其正常布局空间

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

于 2012-11-14T12:46:38.637 回答
0

您是否尝试过 onmousedown 和 onmouseup 事件?onmousedown -> 调整大小 onmouseup -> fadeIn

于 2012-11-14T12:41:33.603 回答