From b5d65d4e4920d0a09bb53504cca7c21033ea8790 Mon Sep 17 00:00:00 2001 From: Paul Bakaus Date: Tue, 24 Jun 2008 10:00:42 +0000 Subject: [PATCH] fx: 1) patch from Ariel removes the need of adding properties like scrollTop and scrollLeft specifically to fx.step - The priority order is style[prop] ? style[prop] : elem[prop], 2) fixed the height/width case - it wasn't possible to animate obj.height/obj.width if there wasn't a style attr. --- src/fx.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/fx.js b/src/fx.js index ab3fe1a..35a9485 100644 --- a/src/fx.js +++ b/src/fx.js @@ -82,7 +82,7 @@ jQuery.fn.extend({ if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden ) return opt.complete.call(this); - if ( p == "height" || p == "width" ) { + if ( ( p == "height" || p == "width" ) && this.style ) { // Store display property opt.display = jQuery.css(this, "display"); @@ -264,7 +264,7 @@ jQuery.fx.prototype = { (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this ); // Set display property to block for height/width animations - if ( this.prop == "height" || this.prop == "width" ) + if ( ( this.prop == "height" || this.prop == "width" ) && this.elem.style ) this.elem.style.display = "block"; }, @@ -407,20 +407,16 @@ jQuery.extend( jQuery.fx, { _default: 400 }, step: { - scrollLeft: function(fx){ - fx.elem.scrollLeft = fx.now; - }, - - scrollTop: function(fx){ - fx.elem.scrollTop = fx.now; - }, opacity: function(fx){ jQuery.attr(fx.elem.style, "opacity", fx.now); }, _default: function(fx){ - ( fx.elem.style && ( fx.elem.style[ fx.prop ] = fx.now + fx.unit ) ) || ( fx.elem[ fx.prop ] = fx.now ); + if( fx.prop in fx.elem ) + fx.elem[ fx.prop ] = fx.now; + else if( fx.elem.style ) + fx.elem.style[ fx.prop ] = fx.now + fx.unit; } } }); -- 1.7.10.4