2
我在將觸摸事件的相對位置獲取到它發生的html元素時遇到了問題。我知道,這可能是一百萬次。但是我爲此付出了數日的努力,並且看到了很多解決方案。touchevent在手機瀏覽器中的相對位置
奇怪的是,在我測試的所有桌面瀏覽器上,它工作,但沒有任何移動瀏覽器。
我在桌面上
- 歌劇
- 鉻
- Firefox的測試
和移動
- 的HTC One X(4.1)鉻
- 三星注10.1(4.1)股票瀏覽器
- 三星注10.1(4.1),鉻
- 的Nexus 7(4.2),鉻
這裏是一個jsfiddle我的代碼。
這似乎是問題是,如果我的畫布捕獲的事件是一個滾動區域內,一個offsetParent
元素的scrollTop
屬性設置爲0
在移動瀏覽器,它具有桌面上的適當的值瀏覽器。
那麼這是一個已知的錯誤?或者我在這裏監督什麼? 更重要的是,是否有解決方法或其他方法來實現我的目標?
下面是我的一些代碼,我如何計算相對位置:
getRelativePosition: function (element, event) {
var position = { x : event.pageX, y : event.pageY };
do {
this.log(element.offsetTop);
this.log(element.offsetHeight);
position.x -= element.offsetLeft;
position.y -= element.offsetTop;
position.x += element.scrollLeft;
position.y += element.scrollTop;
} while(element = element.offsetParent);
return position;
}