OSDN Git Service

Verison 0.6.201, X.UI.ScrollBox woring at IE5.5 well.
authoritozyun <itozyun@user.sourceforge.jp>
Thu, 10 Dec 2015 15:04:49 +0000 (00:04 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Thu, 10 Dec 2015 15:04:49 +0000 (00:04 +0900)
0.6.x/css/xui.css
0.6.x/js/02_dom/06_XNodeCSS.js
0.6.x/js/02_dom/10_XNodeAnime.js
0.6.x/js/02_dom/20_XNode.js
0.6.x/js/20_ui/15_ScrollBox.js

index d1f57f2..6f91c92 100644 (file)
@@ -76,7 +76,6 @@
 /* browser bug fix */\r
 \r
        zoom               : 1;\r
-\r
        word-wrap          : break-word; /* IE5.5?5?, Firefox3.5, Chrome1 Opera10.5 Safari1 */\r
        white-space        : pre;           /* CSS 2.0 */\r
        white-space        : pre-wrap;      /* CSS 2.1 */\r
                        position     : absolute;\r
                        overflow     : hidden;\r
                        background   : #000;\r
-                       background   : rgba(0,0,0,0.5);\r
+                       /* background   : rgba(0,0,0,0.5); IE5.5 ietester でインジケーターに色がつかない、、、*/\r
                }\r
                .Root .ScrollBox-IndicatorV {\r
                        top    : 0;\r
index a59b708..9bcfdfd 100644 (file)
@@ -246,7 +246,7 @@ function X_Node_CSS_parseColor( x ){
 
 function X_Node_CSS_objToCssText( that, skipFilter ){
        var obj   = that[ '_css' ],
-               plain = X_EMPTY_OBJECT,
+               //plain = X_EMPTY_OBJECT,
                css   = [],
                n     = -1,
                p, v, specialFix, filterFix;
@@ -260,7 +260,7 @@ function X_Node_CSS_objToCssText( that, skipFilter ){
        
        for( p in obj ){
                // object の拡張に備えて plain なオブジェクトを用意し、そのメンバーと一致するものは処理の対象外。
-               if( plain[ p ] ) continue;
+               //if( plain[ p ] ) continue;
                        
                v = obj[ p ];
                
@@ -277,7 +277,7 @@ function X_Node_CSS_objToCssText( that, skipFilter ){
        };
        
        if( filterFix ){
-               v = X_Node_CSS_objToIEFilterText( that, filterFix );
+               v = X_Node_CSS_objToIEFilterText( that, filterFix, css );
                if( v ){
                        css[ ++n ] = 'filter:' + v;
                };
@@ -314,13 +314,15 @@ X_Node_CSS_FILTER_FIX_PROPS =
                } :
                null;
 
-function X_Node_CSS_objToIEFilterText( that, opt_css ){
+function X_Node_CSS_objToIEFilterText( that, opt_css, opt_cssList ){
        var obj     = opt_css || that[ '_css' ],
                test    = X_Node_CSS_FILTER_FIX_PROPS,
+               css     = {},
                filters = [],
                n       = -1,
                p, id, v, num, ary, params, i, l, dir,
                afterUpdate, impossible;
+
        for( p in obj ){
                if( X_EMPTY_OBJECT[ p ] ) continue;
                
@@ -332,7 +334,10 @@ function X_Node_CSS_objToIEFilterText( that, opt_css ){
                                filters[ ++n ] = v;
                                break;
                        case 2 : //'opacity' :
-                               if( v !== 1 ) filters[ ++n ] = 'alpha(opacity=' + ( v * 100 | 0 ) +')';
+                               //if( v === 0 ){
+                               //      opt_cssList && ( opt_cssList[ opt_cssList.length ] = 'visibility:hidden' );
+                               //} else
+                               if( v < 1 ) filters[ ++n ] = 'alpha(opacity=' + ( v * 100 | 0 ) +')';
                                break;
                        case 3 : //'boxShadow' :
                                // TODO カンマ区切りの複数指定
@@ -528,11 +533,11 @@ function X_Node_css( nameOrObj /* value */ ){
 // setter:object
        if( X_Type_isObject( nameOrObj ) ){
                if( !css ) css = this[ '_css' ] = {};
-               plain    = X_EMPTY_OBJECT;
+               //plain    = X_EMPTY_OBJECT;
                camelize = X_Node_CSS_camelize;
                flags    = this[ '_flags' ];
                for( p in nameOrObj ){
-                       if( plain[ p ] ) continue;
+                       //if( plain[ p ] ) continue;
                        name = camelize( p );
                        v    = nameOrObj[ p ];
                        if( css[ name ] === v ) continue;
index cbf6a33..5404814 100644 (file)
@@ -51,7 +51,9 @@ function X_Node_animate( start, dest, duration, easing, lazyRelease, option ){
        \r
        if( !obj ){\r
                this[ '_anime' ] = obj = {\r
-                               x : 0, y : 0, a : 1,\r
+                               x : X_NodeAnime_hasTransform ? 0 : NaN,\r
+                               y : X_NodeAnime_hasTransform ? 0 : NaN,\r
+                               a : 1,\r
                                duration : 0\r
                                //phase, lazyRelease, easing, follower, releaseNow\r
                        };\r
@@ -152,7 +154,7 @@ function X_Node_stop( option ){
                case 4 : // 強制停止(GPU転送予約)\r
                case 7 : // アニメーション中\r
                        if( option & X_NODE_ANIME_RESET ){\r
-                               obj.startX = obj.startY = obj.destX = obj.destY = obj.x = obj.y = 0;\r
+                               obj.startX = obj.startY = obj.destX = obj.destY = obj.x = obj.y = X_NodeAnime_hasTransform ? 0 : NaN;\r
                                obj.startA = obj.destA = obj.a = 1;\r
                        }; // TODO 終了値で停止も,,,\r
                        \r
@@ -276,8 +278,8 @@ function X_NodeAnime_updateAnimations( e ){
                                if( now < obj.destTime ){\r
                                        easing = obj.progress  = obj.easing.fn( ( now - obj.startTime ) / obj.duration );\r
                                        X_NodeAnime_updatePosition( xnode, \r
-                                               obj.x = ( obj.destX - obj.startX ) * easing + obj.startX | 0,\r
-                                               obj.y = ( obj.destY - obj.startY ) * easing + obj.startY | 0,\r
+                                               obj.x = ( obj.destX - obj.startX ) * easing + obj.startX,\r
+                                               obj.y = ( obj.destY - obj.startY ) * easing + obj.startY,\r
                                                obj.a = ( obj.destA - obj.startA ) * easing + obj.startA, true );\r
                                        c = true;\r
                                        break;\r
index ab4e26b..1656421 100644 (file)
@@ -1577,6 +1577,7 @@ var X_Node__commitUpdate =
                                that[ '_flags' ] |= X_NodeFlags_ACTUAL_LISTENING;
                        };
                        
+                       // ie8 では子要素に opacity が反映されないため、親要素の opacity を積算する
                        ie8opacity = ie8opacity * ( that[ '_css' ] && 0 <= that[ '_css' ].opacity ? that[ '_css' ].opacity : 1 );
                        
                        // 8. 更新の適用
@@ -1718,7 +1719,8 @@ var X_Node__commitUpdate =
 var X_Node__updateRawNode =
        X_UA_DOM.W3C ?
                ( function( that, elm, ie8opacity, accumulatedFlags ){
-                       var attrs, rename, k, v, memory, f;
+                       var // flags = that[ '_flags' ],
+                               attrs, rename, k, v, memory, f;
 
                        // textNode
                        if( !that[ '_tag' ] ){
@@ -1726,6 +1728,7 @@ var X_Node__updateRawNode =
                                that[ '_flags' ] &= X_Node_BitMask_RESET_DIRTY;
                                return;
                        };
+                       
                        // id
                        if( that[ '_flags' ] & X_NodeFlags_DIRTY_ID ){
                                that[ '_id' ] ?
@@ -1792,6 +1795,7 @@ var X_Node__updateRawNode =
                                delete that[ '_newAttrs' ];
                        };
                        
+                       
                        if( accumulatedFlags & X_NodeFlags_IE8_OPACITY_FIX ){
                                memory = that[ '_css' ] && that[ '_css' ].opacity;
                                if( f = true ){
index 1770704..fd8946b 100644 (file)
@@ -26,7 +26,7 @@ function XUI_ScrollBox_start( scrollBox ){
                        scrollBox.xnode[ 'append' ]( XUI_ScrollBox_indicatorV );\r
                        XUI_ScrollBox_indicatorV[ 'animate' ](\r
                                        { opacity : 0 },\r
-                                       { opacity : 1 },\r
+                                       { opacity : 0.5 },\r
                                        900, 'circular', 300\r
                                );\r
                        scrollBox\r
@@ -46,7 +46,7 @@ function XUI_ScrollBox_start( scrollBox ){
                        scrollBox.xnode[ 'append' ]( XUI_ScrollBox_indicatorH );\r
                        XUI_ScrollBox_indicatorH[ 'animate' ](\r
                                        { opacity : 0 },\r
-                                       { opacity : 1 },\r
+                                       { opacity : 0.5 },\r
                                        900, 'circular', 300\r
                                );\r
                        scrollBox\r
@@ -66,7 +66,7 @@ function XUI_ScrollBox_indicatorHandleEvent( e ){
                case XUI_Event.SCROLL_END :\r
                        console.log( '-fadeout-' );\r
                        this[ 'animate' ](\r
-                               { opacity : 1 },\r
+                               { opacity : 0.5 },\r
                                { opacity : 0 },\r
                                900, 'circular', 300\r
                        );\r
@@ -326,7 +326,7 @@ function X_UI_ScrollBox_translate( that, x, y, opt_time, opt_easing, opt_release
                        },\r
                        {\r
                                y : scrollBoxH * y / that.scrollYMax,\r
-                               opacity : 1\r
+                               opacity : 0.5\r
                        },\r
                        opt_time, opt_easing, opt_release\r
                );\r
@@ -344,7 +344,7 @@ function X_UI_ScrollBox_translate( that, x, y, opt_time, opt_easing, opt_release
                        },\r
                        {\r
                                x : scrollBoxW * x / that.scrollXMax,\r
-                               opacity : 1\r
+                               opacity : 0.5\r
                        },\r
                        opt_time, opt_easing, opt_release\r
                );\r