2014-11-03 29 views
1

在運行Android 4.0.4的三星Galaxy Tab 10.1上測試我的應用時,我注意到在向下滾動頁面後pageY值會變得不正確。在Chrome瀏覽器中滾動時Android設備錄製錯誤pageX/pageY

可以使用這裏提供的演示測試此問題: http://api.jquery.com/event.pagey/

看來,返回的pageY值實際上是真正的pageY值+的document.body.scrollTop值。

這是使用默認Internet瀏覽器和Chrome(v38)在Galaxy選項卡上的問題。不過,我也使用Firefox進行了測試,完全沒有問題。

有沒有其他人有這個問題?我僅限於能夠測試的Android設備,有誰知道這個錯誤是否已在更新版本的Android中修復?

在網頁上我遇到了這個問題,我使用「mousemove」事件來設置圖形上標記的位置。我使用jquery.ui.touch.js來模擬觸摸事件。當「touchmove」發生時,pageY值實際上是正確的,只有當我點擊Galaxy Tab上的屏幕時才返回錯誤的值。這使得修復不正確的pageY值很困難。

回答

0

touch事件似乎對於andriod具有正確的pageX/pageY值,所以如果設備是android,我必須運行使用這些觸摸事件的單獨函數。

這裏是一個稠合例如:

if(navigator.userAgent.toLowerCase().indexOf("android") > -1){ 
    $('html').on("touchstart touchmove touchend", function(e){ 
     console.log(e.originalEvent.changedTouches[0].pageY); 
    }); 
}else{ 
    $('html').mousemove(function(e){ 
     console.log(e.pageY); 
    }); 
} 
相關問題