2011-11-10 27 views
1

我想基本上做以下事情 - 將面板添加到父面板,但此子面板應該先隱藏廣告。比,佈局完成後(因此,getEl()可用)我想調用slideIn方法。如何添加組件「隱藏」,然後將其滑入?

問題是我不知道應該如何隱藏。 我試圖在beforeLayout事件中隱藏面板,然後在slideIn開始後顯示它,但這不能按預期工作。我也嘗試添加一些CSS屬性(顯示:無或可見性:隱藏),然後刪除它們,但這也不能正常工作。

UPD:一些代碼來澄清我的問題:

var panel = new Ext.panel.Panel({ 
    title: "child", 
    layout: "fit", 
    beforeLayout: function() { 
     //here we are trying to hide the panel 
     panel.getEl().addCls("somehiddenclass"); //actually display:none 
    } 
}) 

parent_panel.add(panel); 
panel.slideIn("l"); 
panel.getEl().removeCls("somehiddenclass"); 
+0

有些代碼會很好地移動此代碼。 JSFiddle甚至更好。 – ZenMaster

+0

@ ZenMaster - 讓我在這裏提供一些代碼 - 爲了速度和後續,如果需要,使用JSFiddle,這絕對是非常棒的服務。 – shabunc

回答

1

你能簡單地用hidden: true初始化面板,然後調用功能的slideIn控制被創建之後?

+0

@dougjmcdonald - 這實際上沒有幫助。它看起來有助於擺脫beforeLayout事件(可悲地觸發多次) - 但試圖調用slideIn不會顯示面板。 – shabunc

+1

在幻燈片放映之前,請爲組件設置setVisible(true) – objectone

0

另一種解決方案可能是將面板封裝在簡單的div元素中,或者更容易控制Ext.Container控件並分別設置其樣式。

相關問題