刚开始踏入小程序的坑,各种东西捣鼓起来磕磕碰碰好艰难,碰到问题也是请教了各种大神,本着分享、互相学习的精神,分享一个刚完成的时间选择器,模拟器中效果图如下:
需求环境:
如办公应用等,外出申请、请假申请时,所要填写的请假开始时间、结束时间,同时需要年月日,小时分钟的表单
插件优势:
相比于当前现有picker,仅单纯支持日期:年月日,或者时间:小时分钟,使得当想要填写【2017年1月20日 08:30】至【2017年1月20日 13:30】 时,官方picker需要定义开始日期、开始时间、结束日期、结束时间4个选择器,个人觉得用户体验欠缺,所以边学习边用picker-view组件,做了这个datetime-picker时间选择器。
开发版本:
微信web开发工具v0.12.130400
测试环境:
在开发工具v0.12.130400版本的模拟器中正常使用,由于没appid,暂未真机测试
参数说明:(传对象)
- {
- page:this,//必传,用于setData本页面
- height:600,//可选,数值类型,选择器高度,单位rpx,默认600,
- animation:'slide',//可选,字符类型,动画仅支持slide伸缩和fade淡入淡出,不传、传空、传其他字符串均为无动画
- duration:500,//可选,数值类型,持续的毫秒数,不传则默认500,
- delay:0//可选,数值类型,延迟执行动画的毫秒数,不传则默认为0,不延迟
- }
使用方法:
(1)下载picker_datetime.js 与 picker_datetime.wxml文件到本地
(2)在需要用到该选择器的wxml文件中,在底部引入picker_datetime.wxml
- <include src="../tools/wxml/picker_datetime.wxml"/>
同时,需要给要用到该选择器的view里,bindTap一个点击事件,用于触发选择器,如
- <view bindtap="startTap" class="form">开始时间:{{startDate}}</view>
(3)在需要用到该选择器的页面对应的js文件中,顶部引入picker_datetime.js
- var pickerFile = require('../tools/js/picker_datetime.js');
同时,在此Page页面的onLoad事件中,加入以下代码
- this.datetimePicker = new pickerFile.pickerDatetime({
- page:this,
- animation:'slide',
- duration:500
- });
最后,在对应的tap事件中,设置一下选择器,如第二步的例子startTab,绑定的值为{{startDate}},则
- startTap : function(){
- this.datetimePicker.setPicker('startDate');
- }
(4)最后剩CSS样式,放入app.wxss 或者当前要用到页面的wxss中
- .pick_datetime {
- position: fixed;
- left: 0;
- bottom: 0;
- width:100%;
- overflow:hidden;
- }
- .pick_datetime_tool {
- display:flex;
- justify-content:space-between;
- height:92rpx;
- line-height:92rpx;
- border-top:4rpx solid #eee;
- border-bottom:4rpx solid #eee;
- padding:0 20rpx;
- }
- .pick_datetime_ok {font-weight:bold;}
- .pick_datetime_clear {color:#666;}
- .pick_datetime picker-view {
- font-size:34rpx;
- }
- .pick_datetime_column {
- height:40px;
- line-height:40px;
- text-align:center;
- }
由于没真机测试,不敢保证真机上是不是有BUG,随着小程序的更新,也不敢保证后续开发环境中,是不是会出现BUG,或者在后续的小程序中官方更新内嵌了更方便的选择器。 好了,分享完毕继续捣鼓