テーブル内の要素の offsetTop を取得する方法がわかりません。テーブルの外側の要素では問題なく機能しますが、テーブル内のすべての要素は同じ結果を返し、通常はページの上部にあります。FirefoxとChromeでこれを試しました。テーブル内の要素の offsetTop を取得するにはどうすればよいですか?
			
			10794 次
		
1 に答える
            25        
        
		
offsetTopに対する相対値を返しますoffsetParent。isoffsetParent.offsetTopになるまで、すべての親を再帰的に追加する必要があります。jQueryのメソッドの使用を検討してください。offsetParentnulloffset()
編集: jQuery を使用したくない場合は、次のようなメソッドを記述できます (未テスト):
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 };
}
    于 2009-06-25T16:53:29.210   に答える