OSDN Git Service

Version 0.6.193, bug fixes X.Node.Anime.
[pettanr/clientJs.git] / 0.6.x / js / 02_dom / 10_XNodeAnime.js
index 2520f14..31e853a 100644 (file)
@@ -431,27 +431,29 @@ function X_Node_Anime_updateAnimation( xnode ){
 \r
 function X_Node_Anime_getComputedPosition( that ){\r
        var raw = that[ '_rawObject' ],\r
-               x = 0, y = 0, a = 1, matrix;\r
+               x = NaN, y = NaN, a = 1, style, matrix;\r
 \r
        if( raw ){\r
                if( X_Node_Anime_hasTransform ){\r
-                       matrix = X_Node_CSS_getComputedStyle( raw, null );\r
-                       matrix = matrix[ X_Node_CSS_VENDER_PREFIX[ 'transform' ] ].split( ')' )[ 0 ].split( ', ' );\r
-                       x = + ( matrix[ 12 ] || matrix[ 4 ] );\r
-                       y = + ( matrix[ 13 ] || matrix[ 5 ] );\r
-                       a = matrix[ X_Node_CSS_Support[ 'opacity' ] ];\r
+                       if( style = X_Node_CSS_getComputedStyle( raw, null ) ){\r
+                               matrix = ( style[ X_Node_CSS_VENDER_PREFIX[ 'transform' ] ] || '' ).split( ')' )[ 0 ].split( ', ' );\r
+                               x = + ( matrix[ 12 ] || matrix[ 4 ] );\r
+                               y = + ( matrix[ 13 ] || matrix[ 5 ] );\r
+                               a = matrix[ X_Node_CSS_Support[ 'opacity' ] ];                          \r
+                       };\r
                } else\r
                if( X_Node_CSS_getComputedStyle ){\r
-                       matrix = X_Node_CSS_getComputedStyle( raw, null );\r
-                       x = parseFloat( matrix[ 'left' ] );\r
-                       y = parseFloat( matrix[ 'top' ]  );\r
-                       a = matrix[ X_Node_CSS_Support[ 'opacity' ] ];\r
+                       if( style = X_Node_CSS_getComputedStyle( raw, null ) ){\r
+                               x = parseFloat( style[ 'left' ] );\r
+                               y = parseFloat( style[ 'top' ]  );\r
+                               a = parseFloat( style[ X_Node_CSS_Support[ 'opacity' ] ] );                             \r
+                       };\r
                } else\r
-               if( matrix = raw.currentStyle || raw.style ){\r
-                       x = parseFloat( matrix[ 'left' ] );\r
-                       y = parseFloat( matrix[ 'top' ]  );\r
-                       a = matrix[ 'opacity' ];\r
-               };              \r
+               if( style = ( raw.currentStyle || raw.style ) ){\r
+                       x = parseFloat( style[ 'left' ] );\r
+                       y = parseFloat( style[ 'top' ]  );\r
+                       a = parseFloat( ( style[ 'filter' ] || 'opacity=1' ).split( 'opacity=' )[ 1 ] );\r
+               };\r
        };\r
 \r
        return { x : x, y : y, a : a };\r