X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F02_dom%2F04_XBoxModel.js;h=d62972be141f2847723798ce4965e1161169b801;hb=b05bf97c1b3b1720e73af54017a48291a364d394;hp=a609fc45cb9ac8b3dfc1f33ed46e5f1b976b781c;hpb=eca68ae8a52822bb0d2d7556fd28784bb2103a2f;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/02_dom/04_XBoxModel.js b/0.6.x/js/02_dom/04_XBoxModel.js index a609fc4..d62972b 100644 --- a/0.6.x/js/02_dom/04_XBoxModel.js +++ b/0.6.x/js/02_dom/04_XBoxModel.js @@ -65,7 +65,7 @@ X_ViewPort[ 'listenOnce' ]( X_EVENT_INIT, function(){ function X_Node_BoxModel_mesure( that, name ){ var flags = that[ '_flags' ], elm; - if( ( flags & X_NodeFlags_IN_TREE ) === 0 || flags & X_NodeFlags_STYLE_IS_DISPLAY_NONE ) return 0; + if( !that[ '_tag' ] || ( ( flags & X_NodeFlags_IN_TREE ) === 0 ) || ( flags & X_NodeFlags_STYLE_IS_DISPLAY_NONE ) ) return 0; X_Node_updateTimerID && X_Node_startUpdate(); @@ -213,17 +213,17 @@ function X_Node_y(){ }; /** - * 要素の文書内の位置。引数に xnode を与えた場合、 + * 要素の文書内の位置。 * @alias Node.prototype.offset * @return {object} { x: {number}, y : {number} } * @example node.offset(); */ -function X_Node_offset( xnode ){ +function X_Node_offset(){ var flags = this[ '_flags' ], offset = { x : 0, y : 0 }, obj, parent, elm; - if( ( flags & X_NodeFlags_IN_TREE ) === 0 || flags & X_NodeFlags_STYLE_IS_DISPLAY_NONE ) return offset; + if( ( ( flags & X_NodeFlags_IN_TREE ) === 0 ) || ( flags & X_NodeFlags_STYLE_IS_DISPLAY_NONE ) ) return offset; if( X_Node_body === this || X_Node_html === this ) return offset; @@ -237,6 +237,8 @@ function X_Node_offset( xnode ){ // エレメントの座標取得 ~スクロール要素~ // http://n-yagi.0r2.net/script/2009/07/post_16.html +// TODO getClientRects Safari2- ? + //■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ // エレメントの絶対座標を得たい //------------------------------------------------------------------------------ @@ -246,7 +248,7 @@ var X_Node_getPosition = ( document.compatMode === 'CSS1Compat' && !X_UA[ 'Webkit' ] ? function( el ){ var pos = el.getBoundingClientRect(), - html = document.documentElement; + html = X_elmHtml; return { x:(pos.left + html.scrollLeft - html.clientLeft) , y:(pos.top + html.scrollTop - html.clientTop) }; } : @@ -275,7 +277,7 @@ var X_Node_getPosition = var ey = 0; // var el = target; - var bd = document.body; + var bd = X_elmBody; do {