5
テーブル内の要素のoffsetTopを取得する方法がわかりません。テーブルの外側の要素は正常に動作しますが、テーブル内のすべての要素は同じ結果を返し、通常はページの上部に表示されます。私はFirefoxとChromeでこれを試しました。テーブル内の要素のoffsetTopを取得するにはどうすればよいですか?テーブルのoffsetTopを取得する
テーブル内の要素のoffsetTopを取得する方法がわかりません。テーブルの外側の要素は正常に動作しますが、テーブル内のすべての要素は同じ結果を返し、通常はページの上部に表示されます。私はFirefoxとChromeでこれを試しました。テーブル内の要素のoffsetTopを取得するにはどうすればよいですか?テーブルのoffsetTopを取得する
offsetTop
は、offsetParent
を基準にした値を返します。 offsetParent
がnull
になるまで、すべての親を通して再帰的にoffsetParent.offsetTop
を追加する必要があります。 jQueryのoffset
()
メソッドを使用することを検討してください。
EDIT:あなたはjQueryのを使用したくない場合は、この(未テスト)などのメソッドを記述することができます。これは、IE7(確実)では動作しません
function offset(elem) {
if(!elem) elem = this;
var x = elem.offsetLeft;
var y = elem.offsetTop;
while (elem = elem.offsetParent) {
x += elem.offsetLeft;
y += elem.offsetTop;
}
return { left: x, top: y };
}
。 IE5-7では、offsetParentsとして相対的な配置を持つ要素はカウントされません。 – KeatsKelleher
@SLAKs brilliant solution :) – Muhammed