2017-12-23 10 views
-2

画面に対してdiv要素の位置を取得しようとしています。 私はすべての場所、まだこれに対する解決策を見つけることができませんを読んで、私のコードは、現在、次のとおりです。HTML要素の画面からの相対位置

var myElement = document.getElementById('pi'); 
var myElement2 = document.body; 

alert (myElement.offsetTop + ',' + myElement.offsetLeft); 
alert (myElement2.offsetTop + ',' + myElement2.offsetLeft); 
alert (window.screenX); 

私が得るすべては本当に場所ではありません、私のdiv要素のために8,8です。

HTMLコード:ブラウザの左端を想定し

<body> <div id=pi >fffddd</div> </body>

+0

? – Mamun

+2

http://jsfiddle.net/hibbard_eu/ZPZQ4/あなたの質問に関連するコードはありません... – zer00ne

+1

あなたの要素がiframeの8,8にあるように見えます - それはjsfiddleにあります。そのような場合は、同様のコードを使用してiframeの位置を取得し、それらの値を追加する必要があります。 – JasonB

答えて

1

は、身体の左端であり、あなたが得ることができるwindow.innerHeightとwindow.outerHeightの差のすべてが体の上にありますあなたが求めているものにもっと近い。ここでは、マルチディスプレイの設定に関する追加の前提があります。

xPos = myElement.offsetLeft + window.screenX; 
yPos = myElement.offsetTop + window.screenY + window.outerHeight - 

window.innerHeight;実際の位置があるべきである何

let myElement = document.body, 
 
    xPos = myElement.offsetLeft + window.screenX, 
 
    yPos = myElement.offsetTop + window.screenY + window.outerHeight - 
 
window.innerHeight; 
 

 
alert (xPos + ',' + yPos);

関連する問題