我正在尝试了解有关触摸事件的更多信息,特别是在iOS 7中进行测试。我已经将我的工作分解为演示我遇到的问题:
(笔不再可用)
窗口高度是在页面加载时测量的,并显示在“高度统计”中。所以,我的想法是最大pageY值将等于窗口高度。但是,当我滚动页面并启动新触摸时,pageY坐标反映整个文档的像素距离,而不是窗口“框架”。
这似乎导致报告的值不正确。当您继续在窗口上下移动手指时,moveY将卡在大约10px的范围内(startY = 374,moveY保持在366和376之间)。我不确定为什么会发生这种情况......但更大的问题是为什么pageY不限于窗框?
以下是仅显示触摸事件捕获的片段:
var startY, moveY;
$(window).on('touchstart', function(e) {
startY = e.originalEvent.targetTouches[0].pageY;
});
$(window).on('touchmove', function(e) {
moveY = e.originalEvent.targetTouches[0].pageY;
});
$(window).on('touchend', function(e) {
endY = moveY;
});
答案 0 :(得分:1)
经过多次挖掘,我发现不仅仅是页面坐标对象。我们还有屏幕和客户端。从测试来看,我无法区分屏幕和页面之间的任何区别,但客户端似乎能够完全告诉我我的目标。例如:
e.originalEvent.targetTouches[0].clientY;
...将始终给出窗框的坐标,而不是文档高度。成功了!