2014-09-12 65 views
0

我想了解更多關於觸摸事件的信息,尤其是在iOS 7中進行測試。我分叉了正在進行的工作以演示我遇到的問題:JS觸摸事件:Y座標大於窗口高度

(筆不再可用)

窗口高度在頁面加載時測量並顯示在「高度統計」中。所以,我的想法是,最大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; 
}); 

回答

1

一些更多的挖掘後,我發現有不僅僅是頁面座標對象的更多。我們也有屏幕客戶端。從測試中,我無法分辨屏幕頁面,但客戶端似乎給我正是我以後。示例:

e.originalEvent.targetTouches[0].clientY; 

...將始終給出窗口框架的座標,而不是文檔高度。成功!