OSDN Git Service

Version 0.6.103, cleanup.
[pettanr/clientJs.git] / 0.6.x / js / 02_dom / 04_XBoxModel.js
index d6b1cb9..639ed3a 100644 (file)
@@ -1,4 +1,4 @@
-X.Dom.BoxModel = {\r
+var X_Node_BoxModel = {\r
        CONTENT_BOX      : 1,\r
        PADDING_BOX      : 2,\r
        BORDER_BOX       : 3,\r
@@ -7,51 +7,22 @@ X.Dom.BoxModel = {
        boxSizingEnabled : false,\r
        \r
        // TODO: offsetLeft, offsetTop の基準位置\r
-       absoluteOffset   : 0,\r
-       \r
-       vScrollbarSize   : 0,\r
-       hScrollbarSize   : 0\r
+       absoluteOffset   : 0\r
 };\r
 \r
 \r
 \r
-X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_INIT, function(){\r
-\r
-       var node = Node._systemNode,\r
-       \r
-               // http://jsdo.it/imaya/kTYg\r
-               body = document.body,\r
-               defaultOverflow = document.body.style.overflow,\r
-               width, height;\r
-\r
-       body.style.overflow = 'hidden';\r
-       w = body.clientWidth;\r
-       h = body.clientHeight;\r
-\r
-       body.style.overflow = 'scroll';\r
-       w -= body.clientWidth;\r
-       h -= body.clientHeight;\r
-\r
-       if( !w ) w = body.offsetWidth  - body.clientWidth;\r
-       if( !h ) h = body.offsetHeight - body.clientHeight;\r
-       body.style.overflow = defaultOverflow; \r
-\r
-       X.Dom.BoxModel.vScrollbarSize = w;\r
-       X.Dom.BoxModel.hScrollbarSize = h;\r
-       if( h <= 0 ){ // ie6, ie11, firefox で 負の値が返る\r
-               console.log( 'invalid hScrollbarSize: ' + h );\r
-               X.Dom.BoxModel.hScrollbarSize = w;\r
-       };\r
-       //\r
+X_ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_INIT, function(){\r
+       var node = X_Node_systemNode;\r
        \r
        node.cssText( 'width:10px;padding:1px;border:2px solid #0;margin:4px;' );\r
        \r
-       X.Dom.BoxModel.defaultBoxModel = node.width() === 10 ?\r
-               X.Dom.BoxModel.BORDER_BOX :\r
-               X.Dom.BoxModel.CONTENT_BOX;\r
+       X_Node_BoxModel.defaultBoxModel = node.width() === 10 ?\r
+               X_Node_BoxModel.BORDER_BOX :\r
+               X_Node_BoxModel.CONTENT_BOX;\r
        \r
-       if( X.Dom.BoxModel.defaultBoxModel === X.Dom.BoxModel.CONTENT_BOX ){\r
-               X.Dom.BoxModel.boxSizingEnabled = node.cssText( 'width:10px;padding:1px;border:2px solid #0;margin:4px;' +\r
+       if( X_Node_BoxModel.defaultBoxModel === X_Node_BoxModel.CONTENT_BOX ){\r
+               X_Node_BoxModel.boxSizingEnabled = node.cssText( 'width:10px;padding:1px;border:2px solid #0;margin:4px;' +\r
                        'box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-o-box-sizing:border-box;-ms-box-sizing:border-box;' )\r
                                                                                        .width() === 10;\r
        };\r
@@ -60,7 +31,7 @@ X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_INIT, function(){
        // margin\r
        // top\r
 \r
-       X.Dom.BoxModel.absoluteOffset =\r
+       X_Node_BoxModel.absoluteOffset =\r
                node.cssText( 'position:absolute;top:0;left:0;margin:1px;border:2px solid #000;padding:4px;' )\r
                        .append( '<div></div>' )\r
                        .firstChild().cssText( 'position:absolute;top:8px;left:8px;margin:16px;border:32px solid #666;padding:64px;' )\r
@@ -82,18 +53,18 @@ Node.prototype.width = function(){
                console.log( 'xnode.width() : no parent' );\r
                return 0;\r
        };\r
-       Node._body._updateTimerID && Node._body._startUpdate();\r
+       X_Node_body._updateTimerID && X_Node_startUpdate();\r
        if( !this._root ){\r
                console.log( 'xnode.width() : not belong tree.' );\r
                return 0;\r
        };\r
        if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
        if( X_UA_DOM.W3C ){\r
-               // this.css( X.Dom.Style.Unit.px, 'width' );\r
+               // this.css( X_Node_CSS_Unit.px, 'width' );\r
                return this._rawObject.offsetWidth;\r
        } else\r
        if( X_UA_DOM.IE4 ){\r
-               return ( this._rawObject || this._ie4getRawNode() ).offsetWidth;\r
+               return ( this._rawObject || X_Node__ie4getRawNode( this ) ).offsetWidth;\r
        } else {\r
                \r
        };\r
@@ -104,18 +75,18 @@ Node.prototype.height = function(){
                console.log( 'xnode.height() : no parent' );\r
                return 0;\r
        };\r
-       Node._body._updateTimerID && Node._body._startUpdate();\r
+       X_Node_body._updateTimerID && X_Node_startUpdate();\r
        if( !this._root ){\r
                console.log( 'xnode.height() : not belong tree.' );\r
                return 0;\r
        };\r
        if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
        if( X_UA_DOM.W3C ){\r
-               // this.css( X.Dom.Style.Unit.px, 'height' );\r
+               // this.css( X_Node_CSS_Unit.px, 'height' );\r
                return this._rawObject.offsetHeight;\r
        } else\r
        if( X_UA_DOM.IE4 ){\r
-               return ( this._rawObject || this._ie4getRawNode() ).offsetHeight;\r
+               return ( this._rawObject || X_Node__ie4getRawNode( this ) ).offsetHeight;\r
        } else {\r
                \r
        };\r
@@ -126,18 +97,18 @@ Node.prototype.clientWidth = function(){
                console.log( 'xnode.width() : no parent' );\r
                return 0;\r
        };\r
-       Node._body._updateTimerID && Node._body._startUpdate();\r
+       X_Node_body._updateTimerID && X_Node_startUpdate();\r
        if( !this._root ){\r
                console.log( 'xnode.width() : not belong tree.' );\r
                return 0;\r
        };\r
        if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
        if( X_UA_DOM.W3C ){\r
-               // this.css( X.Dom.Style.Unit.px, 'width' );\r
+               // this.css( X_Node_CSS_Unit.px, 'width' );\r
                return this._rawObject.clientWidth;\r
        } else\r
        if( X_UA_DOM.IE4 ){\r
-               return ( this._rawObject || this._ie4getRawNode() ).clientWidth;\r
+               return ( this._rawObject || X_Node__ie4getRawNode( this ) ).clientWidth;\r
        } else {\r
                \r
        };\r
@@ -148,18 +119,18 @@ Node.prototype.clientHeight = function(){
                console.log( 'xnode.height() : no parent' );\r
                return 0;\r
        };\r
-       Node._body._updateTimerID && Node._body._startUpdate();\r
+       X_Node_body._updateTimerID && X_Node_startUpdate();\r
        if( !this._root ){\r
                console.log( 'xnode.height() : not belong tree.' );\r
                return 0;\r
        };\r
        if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
        if( X_UA_DOM.W3C ){\r
-               // this.css( X.Dom.Style.Unit.px, 'height' );\r
+               // this.css( X_Node_CSS_Unit.px, 'height' );\r
                return this._rawObject.clientHeight;\r
        } else\r
        if( X_UA_DOM.IE4 ){\r
-               return ( this._rawObject || this._ie4getRawNode() ).clientHeight;\r
+               return ( this._rawObject || X_Node__ie4getRawNode( this ) ).clientHeight;\r
        } else {\r
                \r
        };\r
@@ -170,18 +141,18 @@ Node.prototype.scrollWidth = function(){
                console.log( 'xnode.width() : no parent' );\r
                return 0;\r
        };\r
-       Node._body._updateTimerID && Node._body._startUpdate();\r
+       X_Node_body._updateTimerID && X_Node_startUpdate();\r
        if( !this._root ){\r
                console.log( 'xnode.width() : not belong tree.' );\r
                return 0;\r
        };\r
        if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
        if( X_UA_DOM.W3C ){\r
-               // this.css( X.Dom.Style.Unit.px, 'width' );\r
+               // this.css( X_Node_CSS_Unit.px, 'width' );\r
                return this._rawObject.scrollWidth;\r
        } else\r
        if( X_UA_DOM.IE4 ){\r
-               return ( this._rawObject || this._ie4getRawNode() ).scrollWidth;\r
+               return ( this._rawObject || X_Node__ie4getRawNode( this ) ).scrollWidth;\r
        } else {\r
                \r
        };\r
@@ -192,18 +163,18 @@ Node.prototype.scrollHeight = function(){
                console.log( 'xnode.height() : no parent' );\r
                return 0;\r
        };\r
-       Node._body._updateTimerID && Node._body._startUpdate();\r
+       X_Node_body._updateTimerID && X_Node_startUpdate();\r
        if( !this._root ){\r
                console.log( 'xnode.height() : not belong tree.' );\r
                return 0;\r
        };\r
        if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
        if( X_UA_DOM.W3C ){\r
-               // this.css( X.Dom.Style.Unit.px, 'height' );\r
+               // this.css( X_Node_CSS_Unit.px, 'height' );\r
                return this._rawObject.scrollHeight;\r
        } else\r
        if( X_UA_DOM.IE4 ){\r
-               return ( this._rawObject || this._ie4getRawNode() ).scrollHeight;\r
+               return ( this._rawObject || X_Node__ie4getRawNode( this ) ).scrollHeight;\r
        } else {\r
                \r
        };\r
@@ -214,18 +185,18 @@ Node.prototype.scrollLeft = function(){
                console.log( 'xnode.scrollLeft() : no parent' );\r
                return 0;\r
        };\r
-       Node._body._updateTimerID && Node._body._startUpdate();\r
+       X_Node_body._updateTimerID && X_Node_startUpdate();\r
        if( !this._root ){\r
                console.log( 'xnode.scrollLeft() : not belong tree.' );\r
                return 0;\r
        };\r
        if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
        if( X_UA_DOM.W3C ){\r
-               // this.css( X.Dom.Style.Unit.px, 'width' );\r
+               // this.css( X_Node_CSS_Unit.px, 'width' );\r
                return this._rawObject.scrollLeft;\r
        } else\r
        if( X_UA_DOM.IE4 ){\r
-               return ( this._rawObject || this._ie4getRawNode() ).scrollLeft;\r
+               return ( this._rawObject || X_Node__ie4getRawNode( this ) ).scrollLeft;\r
        } else {\r
                \r
        };\r
@@ -236,18 +207,18 @@ Node.prototype.scrollTop = function(){
                console.log( 'xnode.scrollTop() : no parent' );\r
                return 0;\r
        };\r
-       Node._body._updateTimerID && Node._body._startUpdate();\r
+       X_Node_body._updateTimerID && X_Node_startUpdate();\r
        if( !this._root ){\r
                console.log( 'xnode.scrollTop() : not belong tree.' );\r
                return 0;\r
        };\r
        if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
        if( X_UA_DOM.W3C ){\r
-               // this.css( X.Dom.Style.Unit.px, 'width' );\r
+               // this.css( X_Node_CSS_Unit.px, 'width' );\r
                return this._rawObject.scrollTop;\r
        } else\r
        if( X_UA_DOM.IE4 ){\r
-               return ( this._rawObject || this._ie4getRawNode() ).scrollTop;\r
+               return ( this._rawObject || X_Node__ie4getRawNode( this ) ).scrollTop;\r
        } else {\r
                \r
        };\r
@@ -256,29 +227,29 @@ Node.prototype.scrollTop = function(){
 /* --------------------------------------\r
  *  x, y\r
  *  position:absolute かつ x か y が設定されていたら、再描画しないで css オブジェクトから計算した値を返す。 float は?\r
- *  position:absolute の指定で自動で top,left を補う必要あり? -> X.Dom.Style\r
+ *  position:absolute の指定で自動で top,left を補う必要あり? -> X.Node.CSS\r
  *  親要素 border 外側からの値。 IE, Firefox, Safari, Chrome の offsetLeft/Topでは、border 内側なので補正する。\r
  * transformX, Y は加える? アニメーション中は?\r
  */\r
-// X.Dom.Style.transform,\r
+// X_Node_CSS_transform,\r
 Node.prototype.x = function(){\r
        if( !this.parent ){\r
                console.log( 'xnode.x() : no parent' );\r
                return 0;\r
        };\r
-       Node._body._updateTimerID && Node._body._startUpdate();\r
+       X_Node_body._updateTimerID && X_Node_startUpdate();\r
        if( !this._root ){\r
                console.log( 'xnode.x() : not belong tree.' );\r
                return 0;\r
        };\r
        if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
        if( X_UA_DOM.W3C ){\r
-               // this.css( X.Dom.Style.Unit.px, 'left' );\r
-               // this.css( X.Dom.Style.Unit.px, 'translateX' );\r
+               // this.css( X_Node_CSS_Unit.px, 'left' );\r
+               // this.css( X_Node_CSS_Unit.px, 'translateX' );\r
                return this._rawObject.offsetLeft;\r
        } else\r
        if( X_UA_DOM.IE4 ){\r
-               return ( this._rawObject || this._ie4getRawNode() ).offsetLeft;\r
+               return ( this._rawObject || X_Node__ie4getRawNode( this ) ).offsetLeft;\r
        } else {\r
                \r
        };\r
@@ -289,19 +260,19 @@ Node.prototype.y = function(){
                console.log( 'xnode.y() : no parent' );\r
                return 0;\r
        };\r
-       Node._body._updateTimerID && Node._body._startUpdate();\r
+       X_Node_body._updateTimerID && X_Node_startUpdate();\r
        if( !this._root ){\r
                console.log( 'xnode.y() : not belong tree.' );\r
                return 0;\r
        };\r
        if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
        if( X_UA_DOM.W3C ){\r
-               // this.css( X.Dom.Style.Unit.px, 'top' );\r
-               // this.css( X.Dom.Style.Unit.px, 'transisitonY' );\r
+               // this.css( X_Node_CSS_Unit.px, 'top' );\r
+               // this.css( X_Node_CSS_Unit.px, 'transisitonY' );\r
                return this._rawObject.offsetTop;\r
        } else\r
        if( X_UA_DOM.IE4 ){\r
-               return ( this._rawObject || this._ie4getRawNode() ).offsetTop;          \r
+               return ( this._rawObject || X_Node__ie4getRawNode( this ) ).offsetTop;          \r
        } else {\r
                \r
        };\r
@@ -314,14 +285,14 @@ Node.prototype.offset = function( /* xnodeParent */ ){
                console.log( 'xnode.offset() : no parent' );\r
                return { x : 0, y : 0 };\r
        };\r
-       Node._body._updateTimerID && Node._body._startUpdate();\r
+       X_Node_body._updateTimerID && X_Node_startUpdate();\r
        if( !this._root ){\r
                console.log( 'xnode.offset() : not belong tree.' );\r
                return { x : 0, y : 0 };\r
        };\r
        if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
        \r
-       if( X.Dom.Node._body === this || X.Dom.Node._html === this ){\r
+       if( X.Doc.body === this || X.Doc.html === this ){\r
                return { x : 0, y : 0 };\r
        };\r
        \r
@@ -329,7 +300,7 @@ Node.prototype.offset = function( /* xnodeParent */ ){
                elm = this._rawObject;\r
        } else\r
        if( X_UA_DOM.IE4 ){\r
-               elm = this._rawObject || this._ie4getRawNode();         \r
+               elm = this._rawObject || X_Node__ie4getRawNode( this );         \r
        } else {\r
                \r
        };\r