我正在使用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缓和曲线的较陡曲线回避了问题。这样可以以相对缓慢的开始打开窗格,并显示调整大小的向后滑动。