UI Layout是基於jQuery的佈局框架,專案首頁http://layout.jquery-dev.net/。此框架的參考原型是ExtJS的border-layout,因此十分適用於將原有使用ExtJS的專案改造成jQuery專案。其核心是一個大小自適應的中心面板(必選),面板的上下左右四個方向可以放置可折疊、可縮放的面板(可選),各個面板可以添加任意數量的頁眉和頁腳面板。 UI Layout支援內層佈局的嵌套,任一塊元素都可以當作佈局的容器,最基本的佈局容器是body。
基本使用方法:取得容器元素並呼叫layout方法,傳入配置參數(可選)options即可:
$('body').layout( [options] );通常保留佈局的引用,以便於進一步透過程式碼控制佈局的形態。
var myLayout = $('body').layout('body').layout('body').layout('body').layout('body').layout('body').layout('body'). );
// 讀取版面配置選項
var is_west_resizable = myLayout.options.west.resizable;
var north_maxHeight = myLayout.options.north.maxSize
; >myLayout.toggle("north");
myLayout.sizePane("west", 300);
// 呼叫佈局工具
myLayout.addPinBtn("#myPinButton", "west"); 🎜>myLayout.allowOverflow("north");
所有面板都基於現有的HTML元素,而面板的附屬組件(縮放器和折疊開關)是自動產生的div元素,並且加上上了對應的class屬性。幾乎所有的面板元素都必須是容器元素的直接子元素,form容器是例外。我們可以為對應的HTML元素賦予預設的類別名,或是自訂的類別名稱、id,來指定佈局面板。以下舉個直覺的例子:
$(document). ready(function() {
$("body").layout({
/*
east & west panes require 'ID' selectors
because they are 'nested inside a div'
*/
west__paneSelector: "#west"
, east__paneSelector: "#east"
/*
north & south panes are 'children of body'
*/
, north__pan : ".ui-layout-north"//預設配置,可省略
, south__paneSelector: ".myclass-south"
/*
center pane is a 'child of the first form'
default-selector shown just for reference
*/
, center__paneSelector: ".ui-layout-center"//預設配置,可省略
});
});
對應的頁面: