OSDN Git Service
(root)
/
pettanr
/
clientJs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Version 0.6.207, Modification of variable scope leaks.
[pettanr/clientJs.git]
/
0.6.x
/
js
/
02_dom
/
20_XNode.js
diff --git
a/0.6.x/js/02_dom/20_XNode.js
b/0.6.x/js/02_dom/20_XNode.js
index
81c33fa
..
f09db3a
100644
(file)
--- a/
0.6.x/js/02_dom/20_XNode.js
+++ b/
0.6.x/js/02_dom/20_XNode.js
@@
-1202,7
+1202,7
@@
function X_Node_call( name /*, opt_args... */ ){
var args = arguments,
l = args.length - 1,
v, raw, parent, body,
var args = arguments,
l = args.length - 1,
v, raw, parent, body,
- childX, childY, childW, childH,
+ child
, child
X, childY, childW, childH,
parentW, parentH,
parentSX, parentSY, parentSW, parentSH,
visibleX, visibleY, visibleW, visibleH,
parentW, parentH,
parentSX, parentSY, parentSW, parentSH,
visibleX, visibleY, visibleW, visibleH,
@@
-1258,6
+1258,7
@@
function X_Node_call( name /*, opt_args... */ ){
};
if( name === 'inView' ){
};
if( name === 'inView' ){
+ if( !( this[ '_flags' ] & X_NodeFlags_IN_TREE ) ) return { 'isInView' : false };
body = X_elmBody;
child = raw;
visibleX = visibleY = visibleW = visibleH = 0;
body = X_elmBody;
child = raw;
visibleX = visibleY = visibleW = visibleH = 0;
@@
-1407,6
+1408,9
@@
function X_Node_startUpdate( time ){
removal.length = 0;
};
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 {
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
+1418,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_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;
if( X_Node_updateReservedByReleaseGPU ){
X_Node_reserveUpdate();
X_Node_updateReservedByReleaseGPU = false;
@@
-1448,13
+1454,13
@@
function X_Node_startUpdate( time ){
*/
var X_Node__commitUpdate =
X_UA_DOM.W3C ?
*/
var X_Node__commitUpdate =
X_UA_DOM.W3C ?
- ( function( that, parentElement, nextElement, accumulatedFlags, ie8
opa
city, xnodesIEFilterFixAfter ){
+ ( function( that, parentElement, nextElement, accumulatedFlags, ie8
AccumulatedOp
city, xnodesIEFilterFixAfter ){
var elm = that[ '_rawObject' ],
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 ){
// 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;
};
that[ '_flags' ] & X_Node_BitMask_IS_DIRTY && X_Node__updateRawNode( that, elm );
return elm;
};
@@
-1583,12
+1589,13
@@
var X_Node__commitUpdate =
};
// ie8 では子要素に opacity が反映されないため、親要素の opacity を積算する
};
// 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' ];
// 8. 更新の適用
if( accumulatedFlags & X_Node_BitMask_IS_DIRTY ){
delete that[ '_fontSize' ];
- X_Node__updateRawNode( that, elm,
ie8opa
city, accumulatedFlags );
+ X_Node__updateRawNode( that, elm,
currentOpcity, ie8AccumulatedOp
city, accumulatedFlags );
};
// 9. ie5 only
};
// 9. ie5 only
@@
-1612,7
+1619,7
@@
var X_Node__commitUpdate =
// 10. 子要素の更新。
if( ( xnodes = that[ '_xnodes' ] ) && ( l = xnodes.length ) ) {
for( ; l; ){
// 10. 子要素の更新。
if( ( xnodes = that[ '_xnodes' ] ) && ( l = xnodes.length ) ) {
for( ; l; ){
- next = X_Node__commitUpdate( xnodes[ --l ], elm, next, accumulatedFlags, ie8
opa
city, xnodesIEFilterFixAfter );
+ next = X_Node__commitUpdate( xnodes[ --l ], elm, next, accumulatedFlags, ie8
AccumulatedOp
city, xnodesIEFilterFixAfter );
};
};
};
};
@@
-1627,7
+1634,8
@@
var X_Node__commitUpdate =
};
};
};
};
- if( ( anime = that[ '_anime' ] ) && 6 <= anime.phase && anime.doScroll ){
+/*
+ * if( ( anime = that[ '_anime' ] ) && 6 <= anime.phase && anime.doScroll ){
if( anime.phase === 6 ){
v = anime.fromScrollX;
if( v === v ){
if( anime.phase === 6 ){
v = anime.fromScrollX;
if( v === v ){
@@
-1646,13
+1654,14
@@
var X_Node__commitUpdate =
elm.scrollTop = anime.scrollY;
};
};
elm.scrollTop = anime.scrollY;
};
};
+ */
return elm;
}) :
X_UA_DOM.IE4 ?
( function( that, parentElement, prevElement, accumulatedFlags ){
var elm = that[ '_rawObject' ] || X_Node__ie4getRawNode( that ),
return elm;
}) :
X_UA_DOM.IE4 ?
( function( that, parentElement, prevElement, accumulatedFlags ){
var elm = that[ '_rawObject' ] || X_Node__ie4getRawNode( that ),
- xnodes, l, i, dirty, mix, html, text, prev;
+ xnodes, l, i, dirty, mix, html, text, prev
, anime, v
;
if( !that[ '_tag' ] ){
that[ '_flags' ] & X_NodeFlags_DIRTY_CONTENT && X_Node__updateRawNode( that, elm );
if( !that[ '_tag' ] ){
that[ '_flags' ] & X_NodeFlags_DIRTY_CONTENT && X_Node__updateRawNode( that, elm );
@@
-1769,9
+1778,9
@@
var X_Node__commitUpdate =
*/
var X_Node__updateRawNode =
X_UA_DOM.W3C ?
*/
var X_Node__updateRawNode =
X_UA_DOM.W3C ?
- ( function( that, elm,
ie8opa
city, accumulatedFlags ){
+ ( function( that, elm,
currentOpcity, ie8AccumulatedOp
city, accumulatedFlags ){
var // flags = that[ '_flags' ],
var // flags = that[ '_flags' ],
- attrs, rename, k, v,
memory,
f;
+ attrs, rename, k, v, f;
// textNode
if( !that[ '_tag' ] ){
// textNode
if( !that[ '_tag' ] ){
@@
-1847,11
+1856,9
@@
var X_Node__updateRawNode =
};
if( accumulatedFlags & X_NodeFlags_IE8_OPACITY_FIX ){
};
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
if( that[ '_flags' ] & X_NodeFlags_DIRTY_CSS ){
that[ '_flags' ] |= X_NodeFlags_OLD_CSSTEXT;
} else
@@
-1889,13
+1896,7
@@
var X_Node__updateRawNode =
* IE8でfilter:alphaの指定がposition:relative,position:absoluteの子要素に継承されない問題
*/
if( f ){
* 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;
};
that[ '_flags' ] &= X_Node_BitMask_RESET_DIRTY;