ylbtech-DCloud-MUI:utils |
1.返回頂部 |
mui框架將不少功能配置都集中在mui.init方法中,要使用某項功能,只須要在mui.init方法中完成對應參數配置便可,目前支持在mui.init方法中配置的功能包括:建立子頁面、關閉頁面、手勢事件配置、預加載、下拉刷新、上拉加載、設置系統狀態欄背景顏色。css
mui.init({ //子頁面 subpages: [{ //... }], //預加載 preloadPages:[ //... ], //下拉刷新、上拉加載 pullRefresh : { //... }, //手勢配置 gestureConfig:{ //... }, //側滑關閉 swipeBack:true, //Boolean(默認false)啓用右滑關閉功能 //監聽Android手機的back、menu按鍵 keyEventBind: { backbutton: false, //Boolean(默認true)關閉back按鍵監聽 menubutton: false //Boolean(默認true)關閉menu按鍵監聽 }, //處理窗口關閉前的業務 beforeback: function() { //... //窗口關閉前處理其餘業務詳情點擊 ↑ "關閉頁面"連接查看 }, //設置狀態欄顏色 statusBarBackground: '#9defbcg', //設置狀態欄顏色,僅iOS可用 preloadLimit:5//預加載窗口數量限制(一旦超出,先進先出)默認不限制 })
經過statusBarBackground:rgb
屬性設置狀態欄顏色(iOS7.0+、安卓不支持)格式爲#RRGGBB。jquery
mui.init({ statusBarBackground: '#9defbcg', })
mui默認會監聽Android手機的物理按鍵(back&menu)
,若不但願自動處理按鍵可經過如下方式關閉android
mui.init({ //監聽Android手機的back、menu按鍵 keyEventBind: { backbutton: true, //Boolean(默認true)關閉back按鍵監聽 menubutton: true //Boolean(默認true)關閉menu按鍵監聽 }, })
mui使用css選擇器獲取HTML元素,返回mui對象數組。mui("p")
:選取全部<p>
元素mui("p.title")
:選取全部包含.title
類的<p>
元素ios
若要將mui對象轉化成dom對象,可以使用以下方法(相似jquery對象轉成dom對象):json
//obj1是mui對象 var obj1 = mui("#title"); //obj2是dom對象 var obj2 = obj1[0];
MUI框架的定位是「最接近原生體驗的移動App的UI框架」, 所以和jQuery有所區別,不多爲簡化DOM操做而封裝API,具體可參考MUI產品概述; 該函數的設計目的,更可能是爲了配合MUI插件使用,好比圖片輪播、下拉刷新、區域滾動等,以下爲詳細示例:數組
示例1:跳轉到圖片輪播的第二張圖片微信
mui('.mui-slider').slider().gotoItem(1);
示例2:從新開啓上拉加載框架
mui('#pullup-container').pullRefresh().refresh(true);
mui.each()
去遍歷數組或json對象,也可使用
mui(selector).each()
去遍歷DOM結構。
this
關鍵字代替
輸出當前數組中每一個元素的平方dom
var array = [1,2,3] mui.each(array,function(index,item){ console.log(item*item); })
當前頁面中有三個字段,以下:iphone
<div class="mui-input-group"> <div class="mui-input-row"> <label>字段1:</label> <input type="text" class="mui-input-clear" id="col1" placeholder="請輸入"> </div> <div class="mui-input-row"> <label>字段2:</label> <input type="text" class="mui-input-clear" id="col2" placeholder="請輸入"> </div> <div class="mui-input-row"> <label>字段3:</label> <input type="text" class="mui-input-clear" id="col3" placeholder="請輸入"> </div> </div>
each()
方法循環校驗,以下:
var check = true; mui(".mui-input-group input").each(function () { //若當前input爲空,則alert提醒 if(!this.value||trim(this.value)==""){ var label = this.previousElementSibling; mui.alert(label.innerText+"不容許爲空"); check = false; return false; } }); //校驗經過,繼續執行業務邏輯 if(check){ //..... }
將兩個對象合併成一個對象。
var target = { company:"dcloud", product:{ mui:"小巧、高效" } } var obj1 = { city:"beijing", product:{ HBuilder:"飛同樣的編碼" } } mui.extend(target,obj1); //輸出:{"company":"dcloud","product":{"HBuilder":"飛同樣的編碼"},"city":"beijing"} console.log(JSON.stringify(target));
從如上輸出能夠看到,product節點下的mui被替換成了HBuilder,由於默認僅合併對象根節點下的key、value;若是想深度合併,則能夠傳入deep
參數,以下:
var target = { company:"dcloud", product:{ mui:"小巧、高效" } } var obj1 = { city:"beijing", product:{ HBuilder:"飛同樣的編碼" } } //支持深度合併 mui.extend(true,target,obj1); //輸出:{"company":"dcloud","product":{"mui":"小巧、高效","HBuilder":"飛同樣的編碼"},"city":"beijing"} console.log(JSON.stringify(target));
setTimeOut封裝
滾動窗口屏幕到指定位置,該方法是對window.scrollTo()
方法在手機端的加強實現,可設定滾動動畫時間及滾動結束後的回調函數;鑑於手機屏幕大小,該方法僅可實現屏幕縱向滾動。
1秒鐘以內滾動到頁面頂部
mui.scrollTo(0,1000);
咱們常常會有經過navigator.userAgent
判斷當前運行環境的需求,mui對此進行了封裝,經過調用mui.os.XXX便可
檢測是否爲iOS或安卓系統版本是否小於4.4
if(mui.os.ios||(mui.os.android&&parseFloat(mui.os.version)<4.4)){ //... }
2.返回頂部 |
3.返回頂部 |
4.返回頂部 |
5.返回頂部 |
6.返回頂部 |
做者:ylbtech 出處:http://ylbtech.cnblogs.com/ 本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。 |
mui須要在頁面加載時初始化不少基礎控件,如監聽返回鍵,所以務必在每一個頁面中調用