JavaScript实现移动端滑动选择日期功能
来源: 阅读:2640 次 日期:2016-07-18 16:44:36
温馨提示: 小编为您整理了“JavaScript实现移动端滑动选择日期功能”,方便广大网友查阅!

本文实例为大家分享了JavaScript实现滑动选择日期的具体代码,供大家参考,具体内容如下

$(page).on('touchmove','#touchMoveTime',function (event) {

   touchMove(event);

  });

  scrollBarInit(); //初始化

  function scrollBarInit() {

   var defaultValue = 3,maxValue = 30;

   var myDate = new Date();

   var year = myDate.getFullYear();

   var month = myDate.getMonth() + 1;  //获取当前月份(0-11,0代表1月)

   var date = myDate.getDate();

   var day = new Date(year,month,0);

   var daycount = day.getDate(); //获取本月天数:

   if((date + defaultValue) > daycount){

    if(month == 12){

     month = 1;

     year = year + 1;

    }else{

     month = month + 1;

    }

    date = (date + defaultValue) - daycount;

   }else{

    date = date + defaultValue;

   }

   if(month < 10){

    month = "0"+month;

   }

   if(date < 10){

    date = "0"+date;

   }

   $("#endTime").attr('value',year+'-'+month+'-'+date);

   var currentX = $("#touchMoveTime").width() * (0 / maxValue);

   $('#scroll_Track').css({width:currentX+"px"});

   $('#scroll_Thumb').css({transform:'translate(' + currentX + 'px, 0)'});

  };

  function touchMove(event) {

   event.preventDefault();

   if (!$('#scroll_Thumb') || !event.touches.length) return;

   var defaultValue = 3,maxValue = 30;

   var myDate = new Date();

   var year = myDate.getFullYear();

   var month = myDate.getMonth() + 1;  //获取当前月份(0-11,0代表1月)

   var date = myDate.getDate();

   var tran_currentX = '';

   var startOffset = parseInt($('#touchMoveTime').offset().left);

   var endOffset = parseInt($('#touchRight').offset().left);

   var _limit = endOffset - startOffset;

   var touchMoveTimeOffsetLeft = $('#scroll_Track').offset().left;

   var touch = event.touches[0];

   var endX = touch.pageX;

   var currentX = endX - touchMoveTimeOffsetLeft;

   var Timevalue = Math.round(maxValue * (currentX / $("#touchMoveTime").width())); //当前刻度值

   if(Timevalue < defaultValue){

    Timevalue = defaultValue

   }else if(Timevalue > maxValue){

    Timevalue = maxValue;

   }

   if(currentX < _limit && currentX > 15){

    $('#days').text(Timevalue);

    $('#scroll_Track').css({width:currentX+"px"});

    if(currentX < 20){

     tran_currentX = 0

    }else{

     tran_currentX = currentX - 20;

    }

    $('#scroll_Thumb').css({transform:'translate(' + tran_currentX + 'px, 0)'});

    var day = new Date(year,month,0);

    var daycount = day.getDate(); //获取本月天数

    if((date + Timevalue) > daycount){

     if(month == 12){

      month = 1;

      year = year + 1;

     }else{

      month = month + 1;

     }

     date = (date + Timevalue) - daycount;

    }else{

     date = date + Timevalue;

    }

    if(month < 10){

     month = "0"+month;

    }

    if(date < 10){

     date = "0"+date;

    }

    $('#endTime').attr('value',year+'-'+month+'-'+date);

   }

  }

-------------------------------------------------------------------------

<div class="clList">

  <span class="cl-15 pull-left">3天</span>

 <div id="touchMoveTime" class="jzrqDiv cl-70 pull-left">

  <div id="scroll_Track"></div>

     <div class="spirit icon" id="scroll_Thumb"></div>

 </div>

 <span class="cl-15 pull-left text-right" id="touchRight">30天</span>

</div>

------------------------------------------------------------------------------

.jzrqDiv{position:relative; top:15px; height: 10px; border-radius: 20px; background: #efefef; box-shadow:inset 0 1px 2px rgba(0,0,0,.15); }

2 #scroll_Track{ position: absolute; top:0; height: 10px; border-radius: 20px; background: #2399dc; z-index: 10;}

3 .spirit {position: absolute; top:-9px; width: 30px;height: 30px;line-height: 30px;font-size: 30px;border-radius: 50%;color: #ddd; background: #fff; z-index: 11;transform: translate(0,0);}

名单

以上就是本文的全部内容,希望对大家的学习有所帮助。

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map