Javascript でページ上のオブジェクトの絶対 x、y 位置を取得したい。これどうやってするの?
obj.offsetTop
とを試しobj.offsetLeft
ましたが、それらは親要素に対する相対的な位置のみを示します。親のないオブジェクトに到達するまで、親のオフセットとその親のオフセットなどをループして追加できると思いますが、もっと良い方法があるはずです。グーグルはあまりヒットせず、SO サイト検索でさえ何も見つかりませんでした。
また、jQueryが使えません。
Javascript でページ上のオブジェクトの絶対 x、y 位置を取得したい。これどうやってするの?
obj.offsetTop
とを試しobj.offsetLeft
ましたが、それらは親要素に対する相対的な位置のみを示します。親のないオブジェクトに到達するまで、親のオフセットとその親のオフセットなどをループして追加できると思いますが、もっと良い方法があるはずです。グーグルはあまりヒットせず、SO サイト検索でさえ何も見つかりませんでした。
また、jQueryが使えません。
var cumulativeOffset = function(element) {
var top = 0, left = 0;
do {
top += element.offsetTop || 0;
left += element.offsetLeft || 0;
element = element.offsetParent;
} while(element);
return {
top: top,
left: left
};
};
(メソッドは PrototypeJS から恥知らずに盗用されました。コード スタイル、変数名、および戻り値は、罪のない人を保護するために変更されています)