2016-05-11 51 views
4

我當前的代碼是如何獲得當CSS變焦參與頁面上的點擊位置

document.addEventListener('click', function(event) { 
    console.log(event.pageX + "-" + event.pageY); 
}); 
然而

,對身體設置(儘管我沒有對其進行控制變焦,有時它不在那裏),event.pageX和event.pageY出錯了。

有沒有辦法獲得相對價值或什麼?

編輯:

身體上的CSS是

body { 
    zoom: 0.485417; 
} 

變焦值可能會改變(如一些外部JS的一部分 - 我不控制這個值,我的JS不設置它,它可以改變)

+0

這是一個很好的問題,似乎它被報道爲Edge,Chromium和Firefox的一個bug。我不確定這是否是一個錯誤。 – andlrc

+0

也許這將有所幫助>> https://github.com/tombigel/detect-zoom 檢測到縮放後,您可以計算原始window.width和縮放寬度之間的差異,並添加或減去點擊位置的差異 –

+0

您可以包括問題中的'css'? – guest271314

回答

2

我這個釘與andlrc的評論的幫助:

var zoomLevel = getComputedStyle(document.body).zoom; 
if (zoomLevel <= 0) { zoomLevel = 0.1; } 
doMyThing(event.pageX/zoomLevel, event.pageY/zoomLevel); 

x和y傳入「doMyThing」現在已正確定位,無論縮放設置爲何。

相關問題