JavaScript实现移动端滑动选择日期功能

 更新时间:2016年06月21日 14:17:29   作者:木耳休心  
这篇文章主要介绍了JavaScript实现滑动选择日期功能,基于sui-mobile的移动端实现,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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">&#xe669;</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);}

更多关于滑动效果的专题,请点击下方链接查看:

javascript滑动操作汇总

jquery滑动操作汇总

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

相关文章

  • AlertBox 弹出层信息提示框效果实现步骤

    AlertBox 弹出层信息提示框效果实现步骤

    弹出层就是相对文档或窗口定位的一个层,一般用来显示提示信息、广告等内容,还可以配合覆盖层来锁定页面。
    2010-10-10
  • 七个基于JavaScript实现的情人节表白特效

    七个基于JavaScript实现的情人节表白特效

    情人节将至 程序员证明自己不是直男的时候到啦 我们也有自己的专属代码浪漫。本文将介绍七个利用JavaScript实现的情人节表白特效,需要的可以参考一下
    2022-01-01
  • JavaScript跨浏览器获取页面中相同class节点的方法

    JavaScript跨浏览器获取页面中相同class节点的方法

    这篇文章主要介绍了JavaScript跨浏览器获取页面中相同class节点的方法,本文讲解使用getELementsByClassName函数解决这个需求,并给了一个开源的getELementsByClassName函数实现,功能更加强大,需要的朋友可以参考下
    2015-03-03
  • JavaScript中slice和padEnd的使用小结

    JavaScript中slice和padEnd的使用小结

    本文介绍了JavaScript中slice和padEnd的使用小结,常常被用于数据处理、格式化和切割任务中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • JS实现省市县三级下拉联动

    JS实现省市县三级下拉联动

    这篇文章主要为大家详细介绍了JS实现省市县三级下拉联动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • PHP自动加载autoload和命名空间的应用小结

    PHP自动加载autoload和命名空间的应用小结

    PHP的自动加载就是我们加载实例化类的时候,不需要手动去写require来导入这个class.php文件,程序自动帮我们加载导入进来这.篇文章主要介绍了PHP自动加载autoload和命名空的应用,需要的朋友可以参考下
    2017-12-12
  • 新手快速入门JavaScript装饰者模式与AOP

    新手快速入门JavaScript装饰者模式与AOP

    这篇文章主要介绍了新手快速入门JavaScript装饰者模式与AOP,在不改变对象)的情况下动态的为其添加功能,这就是装饰者模式,下面小编带大家来深入学习一下吧
    2019-06-06
  • JS模态窗口返回值兼容问题的完美解决方法

    JS模态窗口返回值兼容问题的完美解决方法

    下面小编就为大家带来一篇JS模态窗口返回值兼容问题的完美解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • JS delegate与live浅析

    JS delegate与live浅析

    这篇文章主要介绍了JS delegate与live,有需要的朋友可以参考一下
    2013-12-12
  • JS实现汉字与Unicode码相互转换的方法详解

    JS实现汉字与Unicode码相互转换的方法详解

    这篇文章主要介绍了JS实现汉字与Unicode码相互转换的方法,结合实例形式较为详细的分析了javascript针对汉字与Unicode编码转换的操作技巧与相关注意事项,需要的朋友可以参考下
    2017-04-04

最新评论