OSDN Git Service

Verison 0.6.203, fix X.Node.Anime.
[pettanr/clientJs.git] / 0.6.x / js / 02_dom / 20_XNode.js
index 81c33fa..b0ebdf4 100644 (file)
@@ -1407,6 +1407,9 @@ function X_Node_startUpdate( time ){
                removal.length = 0;
        };
        
+       
+       X_UA[ 'IE5' ] && ( X_elmBody.style.visibility = 'hidden' );
+       
        if( X_Node_html[ '_flags' ] & X_Node_BitMask_IS_DIRTY ){
                X_Node__commitUpdate( X_Node_html, X_Node_html[ '_rawObject' ].parentNode, null, X_Node_html[ '_flags' ], 1, xnodesIEFilterFixAfter = [] );
        } else {
@@ -1414,6 +1417,8 @@ function X_Node_startUpdate( time ){
                X_Node__commitUpdate( X_Node_body, X_Node_body[ '_rawObject' ].parentNode, null, X_Node_body[ '_flags' ], 1, xnodesIEFilterFixAfter = [] );
        };
        
+       X_UA[ 'IE5' ] && ( X_elmBody.style.visibility = '' );
+       
        if( X_Node_updateReservedByReleaseGPU ){
                X_Node_reserveUpdate();
                X_Node_updateReservedByReleaseGPU = false;
@@ -1448,13 +1453,13 @@ function X_Node_startUpdate( time ){
  */
 var X_Node__commitUpdate =
        X_UA_DOM.W3C ?
-               ( function( that, parentElement, nextElement, accumulatedFlags, ie8opacity, xnodesIEFilterFixAfter ){
+               ( function( that, parentElement, nextElement, accumulatedFlags, ie8AccumulatedOpcity, xnodesIEFilterFixAfter ){
                        var elm = that[ '_rawObject' ],
-                               created, xnodes, l, next, anime, v;
+                               created, xnodes, l, next, anime, v, currentOpcity;
 
                        // 1. GPU 一切の更新をスキップ
                        if( that[ '_flags' ] & X_NodeFlags_GPU_NOW ){
-                               console.log( '更新のskip ' + !!( that[ '_flags' ] & X_Node_BitMask_IS_DIRTY ) );
+                               console.log( '更新のskip ' + that[ '_className' ] + !!( that[ '_flags' ] & X_Node_BitMask_IS_DIRTY ) );
                                that[ '_flags' ] & X_Node_BitMask_IS_DIRTY && X_Node__updateRawNode( that, elm );
                                return elm;
                        };
@@ -1583,12 +1588,13 @@ var X_Node__commitUpdate =
                        };
                        
                        // ie8 では子要素に opacity が反映されないため、親要素の opacity を積算する
-                       ie8opacity = ie8opacity * ( that[ '_css' ] && 0 <= that[ '_css' ].opacity ? that[ '_css' ].opacity : 1 );
+                       currentOpcity = that[ '_css' ] && 0 <= that[ '_css' ].opacity && that[ '_css' ].opacity;
+                       ie8AccumulatedOpcity = ie8AccumulatedOpcity * ( currentOpcity || 1 );
                        
                        // 8. 更新の適用
                        if( accumulatedFlags & X_Node_BitMask_IS_DIRTY ){
                                delete that[ '_fontSize' ];
-                               X_Node__updateRawNode( that, elm, ie8opacity, accumulatedFlags );
+                               X_Node__updateRawNode( that, elm, currentOpcity, ie8AccumulatedOpcity, accumulatedFlags );
                        };
 
                        // 9. ie5 only
@@ -1612,7 +1618,7 @@ var X_Node__commitUpdate =
                        // 10. 子要素の更新。
                        if( ( xnodes = that[ '_xnodes' ] ) && ( l = xnodes.length ) ) {
                                for( ; l; ){
-                                       next = X_Node__commitUpdate( xnodes[ --l ], elm, next, accumulatedFlags, ie8opacity, xnodesIEFilterFixAfter );
+                                       next = X_Node__commitUpdate( xnodes[ --l ], elm, next, accumulatedFlags, ie8AccumulatedOpcity, xnodesIEFilterFixAfter );
                                };
                        };
 
@@ -1627,26 +1633,6 @@ var X_Node__commitUpdate =
                                };
                        };
 
-                       if( ( anime = that[ '_anime' ] ) && 6 <= anime.phase && anime.doScroll ){
-                               if( anime.phase === 6 ){
-                                       v = anime.fromScrollX;
-                                       if( v === v ){
-                                               elm.scrollLeft = v;
-                                       } else {
-                                               anime.fromScrollX = elm.scrollLeft;
-                                       };
-                                       v = anime.fromScrollY;
-                                       if( v === v ){
-                                               elm.scrollTop = v;
-                                       } else {
-                                               anime.fromScrollY = elm.scrollTop;
-                                       };
-                               } else {
-                                       elm.scrollLeft = anime.scrollX;
-                                       elm.scrollTop  = anime.scrollY;
-                               };
-                       };
-
                        return elm;
                }) :
        X_UA_DOM.IE4 ? 
@@ -1769,9 +1755,9 @@ var X_Node__commitUpdate =
  */
 var X_Node__updateRawNode =
        X_UA_DOM.W3C ?
-               ( function( that, elm, ie8opacity, accumulatedFlags ){
+               ( function( that, elm, currentOpcity, ie8AccumulatedOpcity, accumulatedFlags ){
                        var // flags = that[ '_flags' ],
-                               attrs, rename, k, v, memory, f;
+                               attrs, rename, k, v, f;
 
                        // textNode
                        if( !that[ '_tag' ] ){
@@ -1847,11 +1833,9 @@ var X_Node__updateRawNode =
                        };
                        
                        if( accumulatedFlags & X_NodeFlags_IE8_OPACITY_FIX ){
-                               memory = that[ '_css' ] && that[ '_css' ].opacity;
-                               f = true;
-                               if( 0 <= memory && memory < 1 ){
-                                       //if( !that[ '_css' ] ) that[ '_css' ] = {};
-                                       that[ '_css' ].opacity = ie8opacity;
+                               if( 0 <= currentOpcity ){
+                                       f = true;
+                                       that[ '_css' ].opacity = ie8AccumulatedOpcity;
                                        if( that[ '_flags' ] & X_NodeFlags_DIRTY_CSS ){
                                                that[ '_flags' ] |= X_NodeFlags_OLD_CSSTEXT;
                                        } else
@@ -1889,13 +1873,7 @@ var X_Node__updateRawNode =
                         * IE8でfilter:alphaの指定がposition:relative,position:absoluteの子要素に継承されない問題
                         */
                        if( f ){
-                               if( 0 <= memory ){
-                                       that[ '_css' ].opacity = memory;
-                               } else {
-                                       //elm.style.filter = 'inherit';
-                                       //delete that[ '_css' ].opacity;
-                                       //if( X_Object_isEmpty( that[ '_css' ] ) ) delete that[ '_css' ];
-                               };
+                               that[ '_css' ].opacity = currentOpcity;
                        };
                        
                        that[ '_flags' ] &= X_Node_BitMask_RESET_DIRTY;