移动端的时间选择器

移动端的划动时间选择器

  在工作当中,遇见了一个UI效果,是让用户划动选择1到12小时,在网上没有找到现成的,就自己写了一个,基本可以满足效果,GitHub地址:https://github.com/Jin0811/TimePicker.git,样式如下:
在这里插入图片描述
  这个选择器只适合移动端的使用,PC端不能使用,用户在划动的时候,样式也会相应地发生变化。’
  所有的样式和代码,都放在了我的GitHub上面,这里大概说一下我实现的想法,要注意的是,我只是写了个弹出层的样子,并没有写弹出层。
  页面当中,一共有14个li,其中第一个和最后一个li是空白的,作用就是占位,可以让第一个和最后一个小时滑动到中间部位。
  可以看到每一次滑动,都会刚好到一个li的位置上,这个利用了ontouchend事件,在用户停止划动之后,检查ul的scrollTop值,再与刚好到每一个li的scrollTop相比,离哪个值比较近就让ul滚动到哪个值。
  例如,初始时ul的scrollTop为0,此时显示的是1小时,一个li的高度为30,那么当ul的scrollTop为30时,显示的就是2小时,为60时就是3小时,那么当ul停止滑动时的scrollTop小于15时,就让它的值为0,当大于15,小于45时,让ul的scrollTop值为30,显示第二个,依次类推。
  ontouchmove事件主要用于用户在划动的过程当中,修改当前li以及当前li前两个和后两个li的样式。

范围对应scrollTop值对应的小时
0-1501
15-45302
45-75603
75-105904
105-1351205
135-1651506
165-1951807
195-2252108
225-2552409
255-28527010
285-31530011
315-34533012
注意
  • 在使用之前必须先引入jquery
  • 这里的小时可以变为月份,其他的城市、分钟选择器应该也可以进行修改
  • 每个li的高度可以改变,但是CSS当中一些样式也要进行改变,我进行了标注
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值