如何在webapp中作出原生的ios下拉菜單效果

github:https://github.com/zhoushengmufc/iosselect

webapp模仿ios下拉菜單

html下拉菜單select在安卓和IOS下表現不同,iosselect正是爲統一下拉菜單樣式而生css

咱們以IOS下select的交互和樣式爲藍本,開發了這一組件html

先看效果:ios

特色

能夠作到0依賴,只需引用一個js和css便可,樣式可本身定製,也可以使用默認樣式git

文件說明

src------iosselect基於iscroll5開發,在這個文件夾下能夠看到iscroll.js,iosselect.js,iosselect.css,若是項目裏有單獨使用iscroll5,可使用這個版本github

merge------合併了iscroll與iosselect,作到組件0依賴,方便開發web

demo------使用demo,說明以下:數組

one------一級下拉菜單,以銀行選擇爲實例

two------二級下拉菜單,相互獨立,沒有關聯,以三國殺組合選將爲例

three------三級下拉菜單,省市區選擇三級聯動

rem------手機端部分解決方案會使用viewport縮放,這個時候咱們須要添加一些樣式,頁面在縮放的狀況下正常顯示

使用說明

###API
new IosSelect(level, data, options)
level: 選擇的層級 1 2 3 最多支持3層
data: [oneLevelArray[, twoLevelArray[, threeLevelArray]]]
options:
     callback: 選擇完畢後的回調函數 必選
     title: 選擇框title  可選,沒有此參數則不顯示title
     itemHeight: 每一項的高度,可選,默認 35px
     headerHeight: 組件標題欄高度 可選,默認 44px
     addClassName: 組件額外類名 可選,用於自定義樣式
     oneTwoRelation: 第一列和第二列是否經過parentId關聯 可選,默認不關聯
     twoThreeRelation: 第二列和第三列是否經過parentId關聯 可選,默認不關聯
     oneLevelId: 第一級選中id 可選
     twoLevelId: 第二級選中id 可選
     threeLevelId: 第三級選中id 可選
####參數說明
level: 級聯等級,支持1,2,3 必選項
data: 數組,前三項分別對應級聯1,2,3項,每一項又是一個數組,若是是一級下拉菜單,data長度爲1

    每一項數組中包含一系列對象,每一個對象必需要有id,做爲該條數據在該項數組中的惟一標識,parentId是可選屬性,做爲關聯的標誌
options.callback(selectOneObj[[, selectTwoObj], selectThreeObj]) 每一個級聯選中項,包含對應數據的全部字段及dom對象
####以地址選擇爲例:
data爲三個數組:
// 省份列表
var iosProvinces = [
    {'id': '130000', 'value': '河北省', 'parentId': '0'}
];

// 城市列表
var iosCitys = [
    {"id":"130100","value":"石家莊市","parentId":"130000"}
];

// 區縣列表
var iosCountys = [
    {"id":"130102","value":"長安區","parentId":"130100"}
];
實例化:
var iosSelect = new IosSelect(3, 
        [iosProvinces, iosCitys, iosCountys],
        {
            title: '地址選擇',
            itemHeight: 35,
            oneTwoRelation: 1,
            twoThreeRelation: 1,
            oneLevelId: oneLevelId,
            twoLevelId: twoLevelId,
            threeLevelId: threeLevelId,
            callback: function (selectOneObj, selectTwoObj, selectThreeObj) {
                selectOneObj = {
                    atindex:26,
                    dom:li.at,
                    id:"510000",
                    parentid:"0",
                    value:"四川省"
                }
            }
    });

demo說明

一級級聯,銀行選擇app

http://zhoushengfe.com/iosselect/demo/one/bank.htmldom

二級級聯,三國殺將領組合選webapp

http://zhoushengfe.com/iosselect/demo/two/sanguokill.html

三級級聯,省市區選擇

http://zhoushengfe.com/iosselect/demo/three/area.html

viewport縮放時處理方案

http://zhoushengfe.com/iosselect/demo/rem/bank.html

相關文章
相關標籤/搜索