2017-11-22 16 views
0

私は、右、左コンソールトップ、中のdiv要素の下のプロパティを取得しています:getBoundingClientRect topプロパティが間違った値を返しますか?

var offSet = document.getElementById("div").getBoundingClientRect(); 

なぜ私が代わりに8pxのトップ 84ピクセルを得るのですか?

はここに例を示しますhttps://codepen.io/Y-Taras/pen/zPjrWJ

P.S.コンソール4のプロパティを表示するには、ページの任意の場所をクリックしてください。

答えて

1

CodePenでは、本体のスクリプトはonloadイベントが発生する前に実行されます。したがって、offSet変数のdivから取得した情報は、draggable関数がスパンを絶対位置に変更する前の位置からのものです。

(あなたはdiv要素は、スパン下回っているときに、プログラムの実行が一時停止だけoffSetを割り当てる前に、コードにalert()を追加して、例えば、によってこれを見ることができます。。)

ソリューション:内部のoffSet情報を取得onmouseup機能、またはonloadイベントで発生します。

+0

cool!ありがとうございます - onmouseup関数では正常に動作します –

関連する問題