手指放在屏幕上:ontouchstart
手指在屏幕上滑动:ontouchmove
手指离开屏幕:ontouchend
我们需要捕获触摸事件的这三个阶段来完成页面的滑动:
ontouchstart: 初始化变量, 记录手指所在的位置,记录当前时间
- /*手指放在屏幕上*/ document.addEventListener("touchstart",function(e){
- e.preventDefault(); var touch = e.touches[0];
- startX = touch.pageX; startY = touch.pageY;
- initialPos = currentPosition; //本次滑动前的初始位置 viewport.style.webkitTransition = ""; //取消动画效果
- startT = new Date().getTime(); //记录手指按下的开始时间 isMove = false; //是否产生滑动
- }.bind(this),false);
ontouchmove: 获得当前所在位置,计算手指在屏幕上的移动差量deltaX,然后使页面跟随移动
- /*手指在屏幕上滑动,页面跟随手指移动*/ document.addEventListener("touchmove",function(e){
- e.preventDefault(); var touch = e.touches[0];
- var deltaX = touch.pageX - startX; var deltaY = touch.pageY - startY;
- //如果X方向上的位移大于Y方向,则认为是左右滑动 if (Math.abs(deltaX) > Math.abs(deltaY)){
- moveLength = deltaX; var translate = initialPos + deltaX; //当前需要移动到的位置
- //如果translate>0 或 < maxWidth,则表示页面超出边界 if (translate <=0 && translate >= maxWidth){
- //移动页面 this.transform.call(viewport,translate);
- isMove = true; }
- direction = deltaX>0?"right":"left"; //判断手指滑动的方向 }
- }.bind(this),false);









