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


怎么了

最佳答案

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

由于似乎没有办法干扰窗格调整器的fx队列,并且setTimeout()不会提供任何帮助,无论事件如何触发,我都使用窗格打开fx缓和曲线的较陡曲线回避了问题。这样可以以相对缓慢的开始打开窗格,并显示调整大小的向后滑动。

07-24 15:37