2015-04-21 52 views
0

我太煩了,找到將各種設備尺寸的點擊座標轉換爲320 [iPhone 4]屏幕的解決方案。如何將不同尺寸的點擊座標轉換爲320尺寸的尺寸?

我已經像元件所需的所有數據的偏移,單擊偏移,窗口寬度/高度等,但沒有發現任何適當的溶液將其轉換成320

對於例如我需要下面提及的轉換X,Y這是我從480屏幕收集:

  1. 元素中的x偏移量,Y [30,1903]
  2. 單擊在X,Y [225,38] //這裏偏移我提到元素的點擊偏移量不是文檔/窗口。
  3. 元寬度/高度(單位:像素)[420,38]

AND

下面是我此數據相轉換爲320

[X,Y後期待的結果] = [161,38]

任何人都可以幫助我這麼做嗎?

回答

1

你可以使用一個小比例的數學......

var xratio=225/420; //420-mouse-x-coord divided by 420 
var yratio=38/38;  // mouse-y-coord/element height 

var x=320*xratio; 
var y=38*yratio; 

您可能必須把x和y的值Math.round()來得到一個完美的像素 而不是小數。

編輯

你擁有它基於什麼你所有的偏移量(我用225來調整,但您可能需要增加或減少你30元偏移到225之前先用420分來獲得這取決於你如何所有的偏移)

爲了扭轉你願意,你可以使用交叉相乘或簡單的代數什麼工程師總結的傳動比百分比:

161到320,什麼x爲420;

(三百二十〇分之一百六十一)=(X/420)

0.503125 =(X/420)

0.503125 * 420 = X

211.3125 = X;

您的x座標必須是420寬度對象上的211.3125,與320寬度對象上的161相同;

ALSO:

對於任何人誰可能是想爲Web應用程序做到這一點, getBoundingClientRect()是比較容易的方式,然後用所有的各種髒性能處理。

https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect

+0

如果我申請這個公式我沒有確切或接近得到預期的結果。 –

+0

哎呀忘了一些東西。現在就試試。 – user2782001

+0

似乎可以使用示例數據,但如果我在[103,38]上應用,那麼結果是錯誤的,因此可能是我們需要計算的其他東西。還有一件事你使用屏幕大小來計算X,我猜他們可能是元素的寬度,而元素的寬度是320px在320維度,如果我錯了,糾正我。 –