jQuery UI.Layout:如何延迟窗格打开

时间:2011-01-11 14:20:26

标签: jquery jquery-ui javascript-events jquery-layout

我正在使用UI.Layout,尝试创建类似于ExtJs布局的行为:在水平窗格的关闭/打开时,应该隐藏缩放器并使用幻灯片效果重新显示。

在窗格关闭时这很容易,因为效果出现在onclose事件之后,但我在窗格打开时应用相同的行为时遇到了严重困难。

由于onopen的事件触发,无论在缩放器上应用了什么效果,我都发现在缩放器幻灯片完成之前无法延迟窗格打开。

以下是相关代码:

outerLayout = $('#outer-layout').layout({
    west : {
        // ...
        onclose_start : function() {
            hideResizer('west');
        },
        onclose_end : function() {
            styleResizer('west');
            showResizer('west');
            animateResizerOnClose('west');
        },
        onopen_start : animateWestResizerOnOpen
    }
    // ...
});

function animateWestResizerOnOpen() {
    $(this).parent().delay(1400).queue(function() {
        $('#outer-layout').layout().open('west');
    }).hide('slide', 300);
}

这里有什么问题?

1 个答案:

答案 0 :(得分:1)

某种解决方法,但效果很好:

由于似乎无法干扰窗格大小调整器的fx队列,并且setTimeout()无法提供任何帮助,无论事件是否触发,我都使用更陡峭的曲线避开了问题。窗格打开fx缓和。这允许窗格以相对较慢的启动打开,并且缩放器后退幻灯片显示。