iPad 上的触摸滚动增量值

6

我们基本上在"DOMMouseScroll"听众上有一个监听器,它返回鼠标滚动的增量,反过来使用这些数据来移动页面上的div元素。

我们想要将此功能添加到iPad上,但很难确定需要哪些侦听器才能返回触摸滚动增量值。

有人有什么建议或开始的地方吗?

谢谢-C

2个回答

22

没有“delta”,但您可以访问XY

这意味着您可以编写一些代码在触摸移动时触发并计算“delta”:

element.addEventListener("touchstart", touchStart, false);
element.addEventListener("touchmove", touchMove, false);

var start = {x:0, y:0};

function touchStart(event) {
  start.x = event.touches[0].pageX;
  start.y = event.touches[0].pageY;
}

function touchMove(event) {
  offset = {};

  offset.x = start.x - event.touches[0].pageX;
  offset.y = start.y - event.touches[0].pageY;

  return offset;  
}

更多参考信息:http://developer.apple.com/library/safari/#documentation/appleapplications/reference/safariwebcontent/HandlingEvents/HandlingEvents.html


1
加速度是多少? - Muhammad Umer

0
如果您不需要实时增量,只需要按下和释放增量,您可以使用以下方法: 基于 @samccone 的代码。
element.addEventListener("touchstart", touchStart, false);
element.addEventListener("touchend", touchEnd, false);

var start = {x:0, y:0};

function touchStart(event) {
  start.x = event.changedTouches[0].pageX;
  start.y = event.changedTouches[0].pageY;
}

function touchEnd(event) {
  offset = {};

  offset.x = start.x - event.changedTouches[0].pageX;
  offset.y = start.y - event.changedTouches[0].pageY;

  return offset;  
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接