2017-09-04 48 views
-5

我對clientX和clientY的工作方式有些疑惑。 我想獲得在窗口中點擊鼠標的座標。我真的需要他們精確。如何在我的窗口中獲取丟失的像素?

我現在的問題是,我得到的座標,但是當涉及到我的窗口的右邊緣和最下面的邊緣時,最後一個像素只是丟失。我無法獲得我的座標以顯示全寬或全高。

我正在使用的窗口的內部維度爲1920x916。我需要x座標的值從0到1920.但它不會達到1920. 1919是最好的我會得到。與身高同樣的問題。最好的是915.爲什麼?

 var winSize = document.getElementById("size"); 
     var mouseCoords = document.getElementById("coords"); 

     window.addEventListener("click", getCoords); 

     function getCoords(e) 
     { 
      var windowWidth = window.innerWidth; 
      var windowHeight = window.innerHeight; 
      winSize.innerHTML = windowWidth + ":" + windowHeight; 

      var xPosition = e.clientX; 
      var yPosition = e.clientY; 
      mouseCoords.innerHTML = xPosition + ":" + yPosition; 
     } 

這裏是我的little fiddle

另一個小小的要求:無jQuery,請與我並不需要支持IE或Safari。

+1

用於'1920x916'像素範圍是... 0 ... 1919 X 0 ... 915 ...如果你計算的值的數量,這是... 1920×916 ....而不是計算916像素...想象你的屏幕是1×1 ...唯一的像素是0, 0不是1,1 –

+0

哦......我怎麼能忘記這一點?我只是愚蠢的。 – Yashia

回答

0

如果你從0開始編號1920個像素,最大將是1919年

如果座標是1920,那麼你會看第一千九百二十一像素。

0是第一像素,
1是第二像素
1919是一千第九百二十零像素