Hi,久違了。處暑逼近之際,潛水半年的 layui 是時候出來透透氣了。我們帶來的是全新的 2.0 版本,一次被我們定義為“破繭重生”的傾情之作。如果你已曾用過 layui,你将真正感受到一次因小而大、因弱而強的成長。在前端MVVM野蠻生長的時代,layui 這樣一個近乎有些不随潮流的UI解決方案,依舊在守望它的執念。它所呈現的不僅僅是一項項信手拈來的元素,更多是關于UI設計理念的表達。不驕不躁,親和而富有生命力。返璞歸真,卻非逆道而行。
2.0 是 layui 的一次裡程碑式版本,它的意義并不隻是那幾項膚淺的更新,而是自此開始,layui 進入一段複活之旅。
更新日志
Table 表格
- 新增的全新子產品,用于對表格進行一些列功能和動态資料操作
- 支援固定表頭、固定行、固定列左/列右
- 支援拖拽改變列寬度
- 支援多級表頭
- 支援大表格、小表格、預設表格的任意尺寸設定
- 支援多種表格風格設定
- 支援“Ajax接口擷取”、“直接指派資料”、“轉化現有表格”三種初始化渲染方式
- 支援單元格的自定義模闆
- 支援對表格重載(比如搜尋、條件篩選等)
- 内置checkbox複選框功能
- 内置自定義工具條及相關操作功能
- 内置分頁功能
- 内置字段排序功能
- 内置單元格編輯功能
- 内置顯示單元格更多内容功能
Carousel 輪播
- 新增的全新子產品,用于處理頁面輪播邏輯
- 支援圖檔、文字清單等任意内容的切換
- 支援普通輪播和全屏輪播(FullPage)的設定
- 支援多種切換動畫的設定
- 支援是否自動切換、自動切換的時間間隔的設定
- 支援初始開始的條目索引的設定
- 支援箭頭和訓示器的風格和位置設定
Layout 布局
- 新增栅格布局系統
- 栅格采用12等分,内置移動裝置、平闆、桌面中等和大型螢幕的響應式處理
- 栅格支援分欄間隔、列偏移、嵌套,流體布局等
- 栅格最低能支援到ie8
- 新增背景大架構布局現成方案
layDate 日期時間選擇器
- 全面重寫,可作為獨立元件(版本直接躍升為 5.0)
- 依舊采用原生JavaScript編寫,零依賴,可在layui中作為子產品使用,也可作為獨立元件使用
- 支援單獨顯示年選擇器、年月選擇器、日期選擇器、時間選擇器、日期時間選擇器
- 支援雙控件,用于選擇年/年月/日期/時間/日期時間五種類型選擇器的範圍(可順時、逆時)
- 支援日期格式的自定義
- 支援日期是否合法的自動校驗
- 支援有效日期範圍的設定
- 支援内置事件(可自定義)、外部事件、直接顯示等多種調用方式
- 支援中文版和國際版的語言設定
- 支援開啟公曆節日和标記重要日期
- 支援直接嵌套在頁面的某個容器中
- 支援底部按鈕的任意順序排版
- 支援智能顯示在最佳可視坐标
- 支援回車快捷鍵選擇
- 支援多種内置主題的設定,支援自定義主題色,且可單獨定制主題
Upload 上傳
- 全面重寫
- 可指定任意元素(如按鈕、普通div等)來觸發上傳
- 支援選擇後自動上傳和手工上傳兩種模式
- 支援附加參數、支援自定義檔案name等
- 支援多檔案上傳(ie8/9除外)
- 支援拖拽檔案上傳(ie8/9除外)
- 支援檔案大小限制,機關kb(ie8/9除外)
- 支援圖檔上傳前預覽(ie8/9除外)
- 支援檔案跨域上傳(ie8/9除外)
layPage 分頁
- 核心代碼和接口重寫
- 新增“資料總數”、“每頁條數”顯示區域
- 支援自定義排版
- 新增count參數,用于得到資料總數,并剔除了pages參數(分頁總數)
- 新增limits參數,用于設定每頁條數的選擇項
- 新增limit參數,用于設定每頁條數的預設項
- 優化跳頁框在輸入非數字時的校驗
- 總頁數低于2時,仍然輸出分頁結構(前面版本不會顯示)
- 尾頁文本預設顯示為總頁數
- 跳頁框如果輸入的頁碼大于最大頁數,則自動跳到最大頁
- 樣式優化
Form 表單集合
- select元件增加自動上下判斷,用于顯示在最佳可視區域
- select元件允許出現“請選擇”的空值選項
- form.render(type, filter)方法增加第二個參數,用于指定某個區域進行局部渲染
- 優化複選框樣式,以更友好地用于非form場景中
- form.on方法支援鍊式寫法
Layer 彈層
- 同步到最新的 layer v3.1.0
- 增加maxHeight參數,用于設定彈層的最大高度
- 對預設按鈕顔色、Tips層、Prompt層、Tab層等進行了樣式微調,以便更顯大氣,且更符合layui風格
Element 頁面元素
- 新增時間軸元素
- 新增徽章元素
- 新增動畫CSS類文檔
- 導航UI細節優化,并新增三種主題色支援:墨綠/藏青/藍
- 導航支援加入圖檔
- 分割線新增可支援的顔色:赤/橙/墨綠/藏青/藍/黑/灰
- Tab頁籤UI微調
- element子產品輸出的接口由先前的函數改為對象
Util 工具集
- 新增倒計時方法:util.countdown()
- 新增用于得到“某個時間在目前時間的多久前”的方法:util.timeAgo()
- [固定塊] 新增 showHeight 參數,用于控制出現TOP按鈕的滾動條高度臨界值
底層方法
- 新增 layui.sort(obj, key, desc) 方法,用于将數組中的對象按某個成員重新對該數組排序
- 改寫layui.router()方法,以更好地解析location.hash的單頁URL規則
其它更改
- 新增28個字型圖示
- 剔除全局滾動條樣式
- 擷取内置的jQuery接口,可通過 var $ = layui.$; 得到,之前的 layui.jquery仍然可用
- layui.css大量樣式結構優化
Bug Fix
- 修複select元件在沒有任何option的情況下報錯的問題
- 修複導航多個排列在一起時,hover出現異常的問題
- 修複layui.device()方法在Chrome裝置模式無法識别ios環境的問題
- 修複IE下,多次執行layui.use加載同一個子產品時,控制台出現多條重複請求的問題(實際上不是真實請求)
1.x 升 2.0 特别注意事項
- layDate日期子產品、layPage分頁子產品、Upload上傳子產品等等,均已完全重寫,請按照最新文檔修改
- 擷取 Form 子產品接口,由之前的 var form = layui.form() 改為:var form = layui.form
- 擷取 Element 子產品接口,由之前的 var element = layui.element() 改為:var element = layui.element
- layui.all.js 的目錄調整到跟 layui.js 的同級目錄,如有使用到 layui.all.js,請注意修改路徑
- 由于改動較大,2.0其實并不相容1.x,強烈不推薦覆寫更新。官網仍會保留 1.x 的存檔,最好按需更新。
完整更新日志
快速上手
http://www.oschina.net/news/87927/layui-2-0-0-released