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);}

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

(0)

相关推荐

  • 浅谈移动端之js touch事件 手势滑动事件

    现分享一篇关于touch的文章,望指教! 原理: 当开始一个touchstart事件的时候,获取此刻手指的横坐标startX和纵坐标startY: 当触发touchmove事件时,在获取此时手指的横坐标moveEndX和纵坐标moveEndY;最后,通过这两次获取的坐标差值来判断手指在手机屏幕上的滑动方向. 具体代码如下: $("body").on("touchstart", function(e) { e.preventDefault(); startX = e.

  • js实现滑动触屏事件监听的方法

    本文实例讲述了js实现滑动触屏事件监听的方法.分享给大家供大家参考.具体实现方法如下: function span_move_fun(){ var span = document.getElementById("move_k"); var span_left = $(span).offset().left; var span_top = $(span).offset().top; var start_left = $(span).offset().left; var start_top

  • 原生javascript移动端滑动banner效果

    本文实例为大家分享了移动端滑动banner效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,

  • 简单通用的JS滑动门代码

    复制代码 代码如下: <UL id=tabMainNav> <LI class=selected id=tab_GameinfoNav onmousemove="show_tab(0)"><SPAN><A id=tab_1 href="#">{$PHPCMS[sitename]}</A></SPAN></LI> <LI id=tab_ShareEmailNav onmousem

  • 使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)

    PC 移动端兼容  IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+ 惯性助动,滑动回弹 门面模式 复制代码 代码如下: window.onload = function() { /*测试数据*/ var insert = ''; for (var i = 0; i < 80; i++) {  insert += '<div style = "width:100%; text-align:center;">滑动测试 ' + i + '

  • 基于JS实现移动端向左滑动出现删除按钮功能

    最近在做移动端项目时,需要实现一个列表页面的每一项item向左滑动时出现相应的删除按钮,本来想着直接使用zepto的touch.js插件,因为之前实现相同的功能时用过这个插件,当时还挺好用的,直接使用它的swipeLeft和swipeRight方法即可,可是今天又开始做这个功能时,却发现这两个方法在使用时毫无效果,一点反应都没有.上网查资料,又下载了最新版本的zepto和touch.js,都没有用,也不知为什么?所以就弃用了这个插件. 下面是我后来实现后的代码,其实就是用了原生js的touch事

  • 博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)

    当一个页面内容很长的时候,侧边栏栏目可能显得太短,当窗口滑动到靠下的位置,则侧边即失去了展示内容的机会.很多新闻资讯类网站如新浪.网易.CSDN等,会在边栏的右下角以固定的小弹窗形式,以提供更多的内容展示方式,但这并不适合博客和web2.0风格的网站. 现在很多的独立博客和网站如人人网等,都使用了让侧边栏模块随滚动条滑动而位置固定的效果.就是当一个页面很长的时候,设定侧栏内容会跟随滚动条,这种效果适用于评论较多.内容较长的网站.志文工作室调研了几种类似功能的实现方法,摘录之以供参考. 参考一.提

  • js实现支持手机滑动切换的轮播图片效果实例

    本文实例讲述了js实现支持手机滑动切换的轮播图片效果的方法.分享给大家供大家参考.具体如下: 运行效果如下: 完整实例代码点击此处本站下载. 使用方法案例: <script type="text/javascript" src="../src/zepto.js"></script> <script type="text/javascript" src="../src/carousel-image.js&qu

  • 基于slideout.js实现移动端侧边栏滑动特效

    HTML5现在本领太大了,PC端已经无法满足它的胃口了,它将强势攻入移动端,所以移动端中各种特效也得基于HTML5实现,看看我们将要介绍的slideout.js,能帮我们实现怎么样的侧边栏滑动特效呢 先看下运行效果: 一.准备资料 只需要准备slideout.js库即可: https://github.com/Mango/slideout/blob/master/dist/slideout.js 小图标: 二.实现代码 HTML代码: <!doctype html> <html lang

  • js实现touch移动触屏滑动事件

    移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成.但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件.处理touch事件能跟踪到屏幕滑动的每根手指. 以下是四种touch事件 touchstart: //手指放到屏幕上时触发 touchmove: //手指在屏幕上滑动式触发 touchend: //手指离开屏幕时触发 touchcancel: //系统取消touch事件的时候触发,这个好像比较少用 每个触摸事件被触发

随机推荐