手机移动端横向日期选择器实现思路

在最近的H5开发工作中,遇到一个横向滑动选择日期的需求,年月修改方式不限,日期为滑动,横向标注星期,每次滑动一周,下面为大家介绍一下我的一个实现思路,有更好的方案欢迎留言。

初期效果

手机移动端横向日期选择器实现思路_第1张图片

页面结构与动画分析

<div class="diy-calendar-weeks-wrapper">
    <div class="diy-calendar-week diy-calendar-prev" data-year="" data-month="" style="transform: translate3d(-100%, 0%, 0px);">
    div>
    <div class="diy-calendar-week diy-calendar-current" data-year="" data-month="" style="transform: translate3d(0%, 0%, 0px);">
    div>
    <div class="diy-calendar-week diy-calendar-next" data-year="" data-month="" style="transform: translate3d(100%, 0%, 0px);">
    div>
div>
  1. 日期部分,采用了三个容器,利用transform布局于页面左中右侧;

  2. 判断页面滑动事件,滑动方向和距离满足条件之后,通过改变元素transform,配合transition实现动画效果;

  3. 即将被移出的diy-calendar-week 直接删除,在另一侧补充新的diy-calendar-week内容;

数据与日期生成

  1. 以当前时间为基准,判断当前是星期几,生成周的html,放进diy-calendar-current;

  2. 然后以当前周的第一天或最后一天的时间戳为基准,以7天为周期,计算prev和next的日期,生成html;

  3. 页面进行动画时,计算日期动态生成html;

  4. 年月改变时,以新的日期为基准,初始化日期。

你可能感兴趣的:(h5,webapp/hybrid,app)