http://d.hatena.ne.jp/susie-t/20061004/1159942798
offsetTop、offsetLeftは扱いが結構面倒。
特に親要素のpositionの値によって0の位置が変わるのが嫌。
なので、とりあえずそれだけでも何とかするコードを書いた。
要jQuery
var pos = ( function ( base_elem ) {
var parent = base_elem.parentNode;
var e_top = 0;
var e_left = 0;
return ( function ( elem ) {
var t = elem.tagName;
if ( !t || t.toLowerCase() == 'body' ) return;
var pos = $.curCSS( elem, 'position' ) || 'static';
var par = elem.parentNode;
if ( pos != 'static' ) {
e_top += elem.offsetTop;
e_left += elem.offsetLeft;
}
arguments.callee( par );
return [ e_top, e_left ];
} )();
} )( elem );
コメントする