iosselect
Version:
iosselect for andriod and ios
145 lines (144 loc) • 4.95 kB
HTML
<head>
<title>时间选择器</title>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<link rel="stylesheet" href="../../src/iosSelect.css">
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "//hm.baidu.com/hm.js?b25bf95dd99f58452db28b1e99a1a46f";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</head>
<body>
<a href="https://github.com/zhoushengmufc/iosselect">查看文档</a>
<div class="form-item item-line" id="selectDate">
<label>时间选择器</label>
<div class="pc-box">
<span data-year="" data-month="" data-date="" id="showDate">点击这里选择时间</span>
</div>
</div>
</body>
<script src="zepto.js"></script>
<script src="../../src/iosSelect.js"></script>
<script type="text/javascript">
var selectDateDom = $('#selectDate');
var showDateDom = $('#showDate');
// 初始化时间
var now = new Date();
var nowYear = now.getFullYear();
var nowMonth = now.getMonth() + 1;
var nowDate = now.getDate();
showDateDom.attr('data-year', nowYear);
showDateDom.attr('data-month', nowMonth);
showDateDom.attr('data-date', nowDate);
// 数据初始化
function formatYear (nowYear) {
var arr = [];
for (var i = nowYear - 5; i <= nowYear + 5; i++) {
arr.push({
id: i + '',
value: i + '年'
});
}
return arr;
}
function formatMonth () {
var arr = [];
for (var i = 1; i <= 12; i++) {
arr.push({
id: i + '',
value: i + '月'
});
}
return arr;
}
function formatDate (count) {
var arr = [];
for (var i = 1; i <= count; i++) {
arr.push({
id: i + '',
value: i + '日'
});
}
return arr;
}
var yearData = function(callback) {
callback(formatYear(nowYear))
}
var monthData = function (year, callback) {
callback(formatMonth());
};
var dateData = function (year, month, callback) {
if (/^(1|3|5|7|8|10|12)$/.test(month)) {
callback(formatDate(31));
}
else if (/^(4|6|9|11)$/.test(month)) {
callback(formatDate(30));
}
else if (/^2$/.test(month)) {
if (year % 4 === 0 && year % 100 !==0 || year % 400 === 0) {
callback(formatDate(29));
}
else {
callback(formatDate(28));
}
}
else {
throw new Error('month is illegal');
}
};
var hourData = function(one, two, three, callback) {
var hours = [];
for (var i = 0,len = 24; i < len; i++) {
hours.push({
id: i,
value: i + '时'
});
}
callback(hours);
};
var minuteData = function(one, two, three, four, callback) {
var minutes = [];
for (var i = 0, len = 60; i < len; i++) {
minutes.push({
id: i,
value: i + '分'
});
}
callback(minutes);
};
selectDateDom.bind('click', function () {
var oneLevelId = showDateDom.attr('data-year');
var twoLevelId = showDateDom.attr('data-month');
var threeLevelId = showDateDom.attr('data-date');
var fourLevelId = showDateDom.attr('data-hour');
var fiveLevelId = showDateDom.attr('data-minute');
var iosSelect = new IosSelect(5,
[yearData, monthData, dateData, hourData, minuteData],
{
title: '地址选择',
itemHeight: 35,
itemShowCount: 9,
oneLevelId: oneLevelId,
twoLevelId: twoLevelId,
threeLevelId: threeLevelId,
fourLevelId: fourLevelId,
fiveLevelId: fiveLevelId,
callback: function (selectOneObj, selectTwoObj, selectThreeObj, selectFourObj, selectFiveObj) {
showDateDom.attr('data-year', selectOneObj.id);
showDateDom.attr('data-month', selectTwoObj.id);
showDateDom.attr('data-date', selectThreeObj.id);
showDateDom.attr('data-hour', selectFourObj.id);
showDateDom.attr('data-minute', selectFiveObj.id);
showDateDom.html(selectOneObj.value + ' ' + selectTwoObj.value + ' ' + selectThreeObj.value + ' ' + selectFourObj.value + ' ' + selectFiveObj.value);
}
});
});
</script>
</body>
</html>