簡體   English   中英

如何在手機/iPad 上獲取 e.offsetX

[英]How can I get e.offsetX on mobile/iPad

當我在 iPad 上嘗試時,e.touches[0] 中沒有 offsetX。 有誰知道我在哪里可以得到這個 offsetX 的值?

基於建議答案中評論的正確答案:

e.offsetX = e.touches[0].pageX - e.touches[0].target.offsetLeft;     
e.offsetY = e.touches[0].pageY - e.touches[0].target.offsetTop;

這會忽略任何變換,例如旋轉或縮放。 另外一定要檢查是否有任何觸摸。

您可以使用 clientX 或 pageX,請參見此處

謝謝,@Kontiki - 這是最終為我解決問題的解決方案:

if("touchmove" == e.type)
{

    let r = canvas.getBoundingClientRect();
    currX = e.touches[0].clientX - r.left;
    currY = e.touches[0].clientY - r.top;
}
else
{
    currX = e.offsetX;
    currY = e.offsetY;
}

頁面偏移量/客戶端方法對我不起作用。 仍然存在抵消。 我發現了另一個完美的解決方案:

let r = canvas.getBoundingClientRect();

let x = e.touches[0].pageX - r.left;
let y = e.touches[0].pageY - r.top;

canvas元素上使用 jQuery 的.on函數綁定事件處理程序時遇到類似問題(不知道原因)。

我通過使用addEventListener綁定事件處理程序來解決它。 處理程序中的event對象具有使用適當值定義的 offsetX 和 offsetY。

希望能幫助到你...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM