2013-07-30 89 views
2

我試圖在關閉時在特定維度上設置ui-layout-west窗格的寬度。默認情況下,按下「切換器」時,該窗格會完全關閉,如this example中所示。我想要的是將「west-pane」設置爲「40px」,並仍保留部分內容。目前我可以設置這個低谷CSS,但西面窗格消失。請參閱my JsFidle example以更好地理解。JQuery佈局固定寬度關閉時

div.ui-layout-resizer.ui-layout-resizer-west.ui-layout-resizer-closed.ui-layout-resizer-west-closed { 
    left: 40px !important; 
} 

我該如何最好地獲得這種效果?我想盡可能地依賴JQuery插件設置,而不是在CSS上。

回答

2

我認爲問題在於關閉意味着關閉和消失,所以你不應該仍然能夠看到框架。如果我明白你想要正確地做什麼,你可以通過用自定義代碼覆蓋關閉操作來僞造它。

這涉及覆蓋onclose_start回調,設置大小,然後返回false以防止窗格關閉。請注意,這意味着就係統而言,該窗格並未真正關閉。

下面的代碼完成了所有這些工作,它在西面窗格狀態對象上創建一個新變量來存儲舊尺寸。它定義了在創建函數開始時(儘管如果沒有定義系統沒有抱怨)。您也可以使用全局變量或其他存儲。您可以使該功能更通用,不僅適用於西方等。

我不確定您希望系統如何工作,您可能需要擺弄if條件。

$(document).ready(function() { 
    var mylayout = $("body").layout(
     {west: { 
      minSize: 40, 
      onclose_start: function() {      
       var closed_size = 40;   
       var current_size = mylayout.state.west.size; 

       if (current_size <= closed_size) { 
        mylayout.sizePane('west', mylayout.state.west.old_size);      
       } else { 
        mylayout.sizePane('west', closed_size);      
        mylayout.state.west.old_size = current_size; 
       }      
       return false; 
      }} 
     }); 
    mylayout.state.west.old_size = mylayout.state.west.size; 
    }); 
+0

謝謝!有用。現在我只需要插入第三個選項,讓它完全關閉。 –