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


Posted in Javascript onJune 21, 2016

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

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

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

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

Javascript 相关文章推荐
CSS(js)限制页面显示的文本字符长度
Dec 27 Javascript
详解JavaScript中setSeconds()方法的使用
Jun 11 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 Javascript
分享jQuery封装好的一些常用操作
Jul 28 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
Dec 26 Javascript
jquery select插件异步实时搜索实例代码
Oct 20 jQuery
详解如何用babel转换es6的class语法
Apr 03 Javascript
JavaScript函数节流和函数去抖知识点学习
Jul 31 Javascript
javaScript实现游戏倒计时功能
Nov 17 Javascript
vue如何实现自定义底部菜单栏
Jul 01 Javascript
vue实现下拉菜单树
Oct 22 Javascript
详细聊聊vue中组件的props属性
Nov 02 Vue.js
bootstrap学习笔记之初识bootstrap
Jun 21 #Javascript
Javascript实现图片加载从模糊到清晰显示的方法
Jun 21 #Javascript
Javascript类型系统之String字符串类型详解
Jun 21 #Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
Jun 21 #Javascript
JS实现简单的右下角弹出提示窗口完整实例
Jun 21 #Javascript
jQuery获取元素父节点的方法
Jun 21 #Javascript
JS图片定时翻滚效果实现方法
Jun 21 #Javascript
You might like
PHP中使用gettext来支持多语言的方法
2011/05/02 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
一些常用的Javascript函数
2006/12/22 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
微信小程序通过一个json实现分享朋友圈图片
2019/09/03 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
js实现验证码干扰(静态)
2021/02/22 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
django框架自定义模板标签(template tag)操作示例
2019/06/24 Python
Python各种扩展名区别点整理
2020/02/27 Python
银行服务感言
2014/03/01 职场文书
学生会竞聘书范文
2014/03/31 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
信息管理专业自荐书
2014/06/05 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL