window.touchMove=function(){    // 用于纪录触摸开始时的坐标    var startX=0,startY=0,    //创建一个变量,用于保存触摸方向    touchDirection="";    //创建一个对象,用于保存滑动事件    var funcs = {};    if(arguments.length>=2&&arguments.length%2==0){      for(var i=0;i<arguments.length;i+=2){        funcs[arguments[i]]=arguments[i+1];      }      var elem =$("#wrapper")[0];      var style = window.getComputedStyle ? window.getComputedStyle(elem,null) : null || elem.currentStyle;      //主程序事件,用于给document绑定触摸事件      document.addEventListener('touchstart',touchSatrtFunc, false);      document.addEventListener('touchmove',touchMoveFunc, false);      document.addEventListener('touchend', touchEndFunc, false);      //定义触摸开始方法,获取触摸事件起始坐标      function touchSatrtFunc(e){        e.stopPropagation();        touchDirection="";        // e.preventDefault();        var touch=e.touches[0];        startX=touch.pageX;        startY=touch.pageY;        //惯性滑动的处理,让滑动变得流畅        if(funcs.up!==undefined&&elem.offsetHeight>=document.body.clientHeight){          startTopScroll = elem.scrollTop;          //当滚动条在最顶部的时候          if(startTopScroll <= 0)              elem.scrollTop = 1;          //当滚动条在最底部的时候          if(startTopScroll + elem.offsetHeight >= elem.scrollHeight)              elem.scrollTop = elem.scrollHeight - elem.offsetHeight - 1;        }        // else        //   e.preventDefault();      };      //定义触摸移动时的方法,获取其坐标并调用判断触摸方向的方法      function touchMoveFunc(e){        e.stopPropagation();        var touch = e.touches[0];        //调用判断触摸方向的方法        touchDirectionFunc(touch.pageX,touch.pageY,e);      };      //判断触摸方向的方法      function touchDirectionFunc(x,y,e){        var moveDirection =Math.abs(y-startY)/Math.abs(x-startX);        if(y-startY=1.5) {          touchDirection="up";        }        else if(y-startY>10&&moveDirection>=1.5) {          touchDirection="down";        }        else if(x-startX<-10&&moveDirection<=0.5) {          touchDirection="left";          e.preventDefault();          // 横向滑动时阻止上下滑动        }        else if(x-startX>10&&moveDirection<=0.5) {          touchDirection="right";          e.preventDefault();          // 横向滑动时阻止上下滑动        }        // else{        //   e.preventDefault();        // }      };      function touchEndFunc(e) {        e.stopPropagation();        //调用上拉事件        if(touchDirection=="up"&&funcs.up!==undefined){          funcs.up(e.target);        }        //调用下拉事件        else if(touchDirection=="down"&&funcs.down!==undefined){          funcs.down(e.target);        }        // 调用左滑事件        else if(touchDirection=="left"&&funcs.left!==undefined){          funcs.left(e.target);        }        //调用右滑事件        else if(touchDirection=="right"&&funcs.right!==undefined){          funcs.right(e.target);        }      }    }  }  // 调用上拉,左滑,右滑方法  touchMove("up",addMore,"left",moveLeft,"right",moveRight);

 

©著作权归作者所有:来自51CTO博客作者迩伶贰的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 1 如何引用第三方滑动验证码
  2. 【微信小程序】swiper轮播图
  3. 4K + 书写主动画笔:EHOMEWEI 便携触摸显示器评测
  4. 【案例】css滑动门技术实现原理及应用场景
  5. 鸿蒙第三方组件——SwipeCaptcha滑动拼图验证组件
  6. 如何在iPhone上使用“滑动键入”?
  7. TCP协议(可靠传输),滑动窗口机制,拥塞机制,避免丢包机制,快速重传机制,
  8. Android(安卓)SuperRecyclerView实现下拉刷新,滑动到底部自动加载
  9. android触摸屏事件手势操作滑动处理

随机推荐

  1. 概述IE和SQL2k开发一个XML聊天程序
  2. 获取mssql的xml返回结构的方法
  3. 实例简析XPath串函数和XSLT
  4. 使用纯HTML的通用数据管理和服务
  5. 手把手教你制作Google Sitemap(详细制作
  6. 在XPath查询中指定轴(转自MSSQL手册)
  7. 使用XSLT将XML数据转换成HTML
  8. Google Sitemap原来支持普通Feed
  9. 使用带批注的 XDR 架构创建 XML 视图
  10. 利用xslt对xml进行缩进格式化处理