2

我正在使用 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);
}

这里有什么问题?

4

1 回答 1

1

有点解决方法,但效果很好:

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

于 2011-01-14T13:28:15.973 回答