首先我们先来看原始的muipicker的例子
<!DOCTYPE html>
<html>
<head>
<meta charset=\"utf-8\">
<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no\" />
<title></title>
<!--标准mui.css-->
<link rel=\"stylesheet\" href=\"../css/mui.min.css\">
<!--App自定义的css-->
<link rel=\"stylesheet\" type=\"text/css\" href=\"../css/app.css\" />
<link href=\"../css/mui.picker.css\" rel=\"stylesheet\" />
<link href=\"../css/mui.poppicker.css\" rel=\"stylesheet\" />
<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"../css/mui.picker.min.css\" />-->
<style>
.mui-btn {
font-size: 16px;
padding: 8px;
margin: 3px;
}
h5.mui-content-padded {
margin-left: 3px;
margin-top: 20px !important;
}
h5.mui-content-padded:first-child {
margin-top: 12px !important;
}
.ui-alert {
text-align: center;
padding: 20px 10px;
font-size: 16px;
}
</style>
</head>
<body>
<header class=\"mui-bar mui-bar-nav\">
<a class=\"mui-action-back mui-icon mui-icon-left-nav mui-pull-left\"></a>
<h1 class=\"mui-title\">picker(选择器)</h1>
</header>
<div class=\"mui-content\">
<div class=\"mui-content-padded\">
<h5 class=\"mui-content-padded\">原生 SELECT</h5>
<select class=\"mui-btn mui-btn-block\">
<option value=\"item-1\">item-1</option>
<option value=\"item-2\">item-2</option>
<option value=\"item-3\">item-3</option>
<option value=\"item-4\">item-4</option>
<option value=\"item-5\">item-5</option>
</select>
<br />
<p>原生 SELECT(选择框)在不同的设备上UI可能会有差异,并且不支持多级联动(多个 SELECT 可实现,但较麻烦),故mui封装了picker组件,参见如下示例。</p>
<h5 class=\"mui-content-padded\">普通示例</h5>
<button id=\'showUserPicker\' class=\"mui-btn mui-btn-block\" type=\'button\'>一级选择示例 ...</button>
<div id=\'userResult\' class=\"ui-alert\"></div>
<h5 class=\"mui-content-padded\">级联示例</h5>
<button id=\'showCityPicker\' class=\"mui-btn mui-btn-block\" type=\'button\'>二级联动示例 ...</button>
<div id=\'cityResult\' class=\"ui-alert\"></div>
<button id=\'showCityPicker3\' class=\"mui-btn mui-btn-block\" type=\'button\'>三级联动示例 ...</button>
<div id=\'cityResult3\' class=\"ui-alert\"></div>
</div>
</div>
<script src=\"../js/mui.min.js\"></script>
<!--<script src=\"../js/mui.picker.min.js\"></script>-->
<script src=\"../js/mui.picker.js\"></script>
<script src=\"../js/mui.poppicker.js\"></script>
<script src=\"../js/city.data.js\" type=\"text/javascript\" charset=\"utf-8\"></script>
<script src=\"../js/city.data-3.js\" type=\"text/javascript\" charset=\"utf-8\"></script>
<script>
(function($, doc) {
$.init();
$.ready(function() {
//普通示例
var userPicker = new $.PopPicker();
userPicker.setData([{
value: \'ywj\',
text: \'董事长 叶文洁\'
}, {
value: \'aaa\',
text: \'总经理 艾AA\'
}, {
value: \'lj\',
text: \'罗辑\'
}, {
value: \'ymt\',
text: \'云天明\'
}, {
value: \'shq\',
text: \'史强\'
}, {
value: \'zhbh\',
text: \'章北海\'
}, {
value: \'zhy\',
text: \'庄颜\'
}, {
value: \'gyf\',
text: \'关一帆\'
}, {
value: \'zhz\',
text: \'智子\'
}, {
value: \'gezh\',
text: \'歌者\'
}]);
var showUserPickerButton = doc.getElementById(\'showUserPicker\');
var userResult = doc.getElementById(\'userResult\');
showUserPickerButton.addEventListener(\'tap\', function(event) {
userPicker.show(function(items) {
userResult.innerText = JSON.stringify(items[0]);
//返回 false 可以阻止选择框的关闭
//return false;
});
}, false);
//-----------------------------------------
//级联示例
var cityPicker = new $.PopPicker({
layer: 2
});
cityPicker.setData(cityData);
var showCityPickerButton = doc.getElementById(\'showCityPicker\');
var cityResult = doc.getElementById(\'cityResult\');
showCityPickerButton.addEventListener(\'tap\', function(event) {
cityPicker.show(function(items) {
cityResult.innerText = \"你选择的城市是:\" + items[0].text + \" \" + items[1].text;
//返回 false 可以阻止选择框的关闭
//return false;
});
}, false);
//-----------------------------------------
// //级联示例
var cityPicker3 = new $.PopPicker({
layer: 3
});
cityPicker3.setData(cityData3);
var showCityPickerButton = doc.getElementById(\'showCityPicker3\');
var cityResult3 = doc.getElementById(\'cityResult3\');
showCityPickerButton.addEventListener(\'tap\', function(event) {
cityPicker3.show(function(items) {
cityResult3.innerText = \"你选择的城市是:\" + (items[0] || {}).text + \" \" + (items[1] || {}).text + \" \" + (items[2] || {}).text;
//返回 false 可以阻止选择框的关闭
//return false;
});
}, false);
});
})(mui, document);
</script>
</body>
</html>
在此基础上修改为类似ios选择时间的插件。
把里面数据换成下面的数据就可以了。
(function($, doc) {
$.init();
$.ready(function() {
//普通示例
// 年月
var yearArray = new Array();
for (var i = 0; i < 10; i ++) {
var monthArray = new Array();
for (var j = 0; j < 12; j ++) {
var month = new Object();
month.value = j + 1 + \"月\";
month.text = j + 1 + \"月\";
monthArray.push(month);
}
var year = new Object();
year.value = i + 2016 + \"年\" ;
year.text = i + 2016 + \"年\";
year.children = monthArray;
yearArray.push(year);
};
//年月日
var yearArray = new Array();
for (var i = 0; i < 10; i ++) {
var monthArray = new Array();
for (var j = 0; j < 12; j ++) {
//月的最后一天
var year = i + 2016;
var month = j;
var lastDay = new Date(year, month + 1, 0).getDate();//month 要加1,原本month是从0开始的,但是因为0是这个月的上个月,所以到了上个月.
if(year == 2016 && month == 1) {
console.log(\"lastday\" + lastDay);
}
var dayArray = new Array();
for(var k = 0; k < lastDay; k ++) {
var day = new Object();
day.value = k + 1 + \"日\";
day.text = k + 1 + \"日\";
dayArray.push(day);
}
var month = new Object();
month.children = dayArray;
month.value = j + 1 + \"月\";
month.text = j + 1 + \"月\";
monthArray.push(month);
}
var year = new Object();
year.value = i + 2016 + \"年\" ;
year.text = i + 2016 + \"年\";
year.children = monthArray;
yearArray.push(year);
};
console.log(yearArray);
// 小时分钟
var hoursec = new Array();
for (var i = 0; i < 24; i ++) {
var hsChildrenArray = new Array();
for (var j = 0; j < 60; j ++) {
var childrenObject = new Object();
var secTrue = j ;
if(j < 10) {
var secTrue = j ;
childrenObject.value = \"0\" + secTrue;
childrenObject.text = \"0\" + secTrue;
}else {
childrenObject.value = secTrue ;
childrenObject.text = secTrue;
}
hsChildrenArray.push(childrenObject);
}
var object = new Object();
if(i < 10) {
object.value = \"0\" + i + \":\" ;
object.text = \"0\" + i + \":\";
}else {
object.value = i +\":\" ;
object.text = i + \":\";
}
object.children = hsChildrenArray;
hoursec.push(object);
};
});
})(mui, document);
效果图:
年月日
小时分钟
效果只有在手机端或者手机chrome的手机模拟器中可以看到。
最后附上muipicker的github地址 https://github.com/dcloudio/mui/tree/master/examples/hello-mui
本文地址:https://www.stayed.cn/item/24205
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我