* 5: GPU解除待ち\r
* 6: 開始可能\r
* 7: アニメーション中\r
- * TODO node.css( 'opacity' ) の上書き\r
*/\r
\r
var X_NODE_ANIME_RESET = 1,\r
X_NODE_ANIME_STAY_GPU = 2,\r
\r
X_NodeAnime_DEFAULT = {\r
- x : X_NodeAnime_hasTransform ? 0 : NaN,\r
- y : X_NodeAnime_hasTransform ? 0 : NaN,\r
- toX : X_NodeAnime_hasTransform ? 0 : NaN,\r
- toY : X_NodeAnime_hasTransform ? 0 : NaN,\r
- fromX : X_NodeAnime_hasTransform ? 0 : NaN,\r
- fromY : X_NodeAnime_hasTransform ? 0 : NaN,\r
+ x : NaN,\r
+ y : NaN,\r
+ toX : NaN,\r
+ toY : NaN,\r
+ fromX : NaN,\r
+ fromY : NaN,\r
rotate : NaN, fromRotate : NaN, toRotate : NaN,\r
skewX : NaN, fromSkewX : NaN, toSkewX : NaN,\r
skewY : NaN, fromSkewY : NaN, toSkewY : NaN,\r
scaleY : 1, fromScaleY : 1, toScaleY : 1,\r
alpha : NaN,\r
scrollX : NaN, fromScrollX : NaN, toScrollX : NaN,\r
- scrollY : NaN, fromScrollY : NaN, toScrollY : NaN,\r
- doScroll : false//,\r
+ scrollY : NaN, fromScrollY : NaN, toScrollY : NaN //,\r
+ //doScroll : false//,\r
//duration : 0\r
//phase, lazyRelease, easing, follower, releaseNow, inited, progress doScroll, fallbackKind\r
// fromTime, toTime\r
a = this[ '_css' ] && parseFloat( this[ '_css' ].opacity );\r
if( 0 <= a ) obj.alpha = a;\r
};\r
- \r
- if( 0 <= duration && X_Type_isFinite( duration ) ){\r
- obj.duration = duration;\r
- };\r
-\r
- obj.easing = X_Type_isFunction( easing ) ? easing : X_NodeAnime_ease[ easing ] || X_NodeAnime_ease[ 'circular' ];\r
\r
// form :\r
obj.fromX = obj.x = X_NodeAnime_getFinite( from[ 'x' ], obj.x );\r
obj.toScrollX = X_NodeAnime_getFinite( dest[ 'scrollX' ], obj.scrollX );\r
obj.toScrollY = X_NodeAnime_getFinite( dest[ 'scrollY' ], obj.scrollY );\r
\r
- if( obj.toRotate && obj.rotate !== obj.rotate ) obj.rotate = 0;\r
- if( obj.toSkewX && obj.skewX !== obj.skewX ) obj.skewX = 0;\r
- if( obj.toSkewY && obj.skewY !== obj.skewY ) obj.skewY = 0;\r
+ if( X_Type_isFinite( obj.toX ) && X_Type_isNaN( obj.x ) ) obj.x = obj.fromX = 0;\r
+ if( X_Type_isFinite( obj.toY ) && X_Type_isNaN( obj.y ) ) obj.y = obj.fromY = 0;\r
+ \r
+ if( obj.toRotate && X_Type_isNaN( obj.rotate ) ) obj.rotate = obj.fromRotate = 0;\r
+ if( obj.toSkewX && X_Type_isNaN( obj.skewX ) ) obj.skewX = obj.fromSkewX = 0;\r
+ if( obj.toSkewY && X_Type_isNaN( obj.skewY ) ) obj.skewY = obj.fromSkewY = 0;\r
\r
+ obj.duration = 0 <= duration && X_Type_isFinite( duration ) ? duration : 0;\r
obj.lazyRelease = 0 <= lazyRelease && X_Type_isFinite( lazyRelease ) ? lazyRelease : 0;\r
- obj.inited = false;\r
- obj.doScroll = 0 <= obj.toScrollX || 0 <= obj.toScrollY;\r
- obj.transform = false;\r
- obj.fallback = 0;\r
- \r
- if( obj.fromX === obj.fromX || obj.fromY === obj.fromY ){\r
- obj.transform = !!X_NodeAnime_hasTransform;\r
- };\r
+ obj.easing = X_Type_isFunction( easing ) ? easing : X_NodeAnime_ease[ easing ] || X_NodeAnime_ease[ 'circular' ];\r
+ obj.inited = false;\r
+ obj.transform = ( X_Type_isFinite( obj.x ) || X_Type_isFinite( obj.y ) || obj.lazyRelease ) && X_NodeAnime_hasTransform;\r
+ obj.doScroll = 0 <= obj.toScrollX || 0 <= obj.toScrollY;\r
+ obj.fallback = 0;\r
\r
// scale\r
if( obj.toScaleX !== 1 && obj.fromScaleX !== 1 && obj.toScaleY !== 1 && obj.fromScaleY !== 1 ){\r
};\r
\r
// rotate, skew\r
- if( obj.toRotate === obj.toRotate || obj.toSkewX === obj.toSkewX || obj.toSkewY === obj.toSkewY ){\r
+ if( X_Type_isFinite( obj.rotate ) || X_Type_isFinite( obj.skewX ) || X_Type_isFinite( obj.skewY ) ){\r
if( X_NodeAnime_hasTransform ){\r
obj.transform = true;\r
} else\r
// -> いない、アニメーションが可能\r
for( i = 0; _xnode = list[ i ]; ++i ){\r
if( _xnode === xnode ) break;\r
-\r
- if( 6 <= _xnode[ '_anime' ].phase ){\r
+ obj = _xnode[ '_anime' ];\r
+ if( 6 <= obj.phase ){\r
if( xnode[ 'contains' ]( _xnode ) || _xnode[ 'contains' ]( xnode ) ){\r
return isTest ? 3 : _xnode;\r
};\r
scaleX = obj.scaleX = obj.toScaleX;\r
scaleY = obj.scaleY = obj.toScaleY;\r
alpha = obj.alpha = obj.toAlpha;\r
+ obj.scrollX = obj.toScrollX;\r
+ obj.scrollY = obj.toScrollY;\r
} else {\r
x = obj.x;\r
y = obj.y;\r
}; \r
} else\r
if( obj.fallback === 16 ){\r
- xnode[ 'css' ]( 'dxtransform', [ x || 0, y || 0, rotate || 0, skewX || 0, skewY || 0, scaleX, scaleY ] );\r
+ xnode[ 'css' ]( 'dxtransform', [ x | 0, y | 0, rotate || 0, skewX || 0, skewY || 0, scaleX, scaleY ] );\r
} else {\r
x === x && xnode[ 'css' ]( 'left', ( x | 0 ) + 'px' );\r
y === y && xnode[ 'css' ]( 'top', ( y | 0 ) + 'px' );\r
};\r
};\r
\r
+ if( obj.doScroll && xnode[ '_rawObject' ] ){\r
+ console.log( 'ok ' + ratio );\r
+ xnode[ '_rawObject' ].scrollLeft = obj.scrollX | 0;\r
+ xnode[ '_rawObject' ].scrollTop = obj.scrollY | 0;\r
+ //X_Node_reserveUpdate();\r
+ };\r
+ \r
alpha === alpha && xnode[ 'css' ]( 'opacity', alpha );\r
};\r
\r