jQuery.fx.update doesn't check for "inline-block"
Hey all,
I was getting popping in my animations when applying to inline-block
(or -moz-inline-box) spans due to them being changed to blocks. I
fixed it by making the following changes
jQuery.fx.prototype = {
// Simple function for setting a style value
update: function(){
if ( this.options.step )
this.options.step.apply( this.elem, [ this.now, this ] );
(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" )
this.elem.style.display = "block";
},
*to*
jQuery.fx.prototype = {
// Simple function for setting a style value
update: function(){
if ( this.options.step )
this.options.step.apply( this.elem, [ this.now, this ] );
(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
var comp_display = jQuery( this.elem ).css( 'display' );
// Set display property to block for height/width animations, if it
isn't a
// block value already.
if ( ( this.prop == "height" || this.prop == "width" )
&& comp_display != "inline-block"
&& comp_display != "-moz-inline-box"
&& comp_display != "block" )
this.elem.style.display = "block";
},
// Get the current size
cur: function(force){
if ( this.elem[this.prop] != null && this.elem.style[this.prop] ==
null )
return this.elem[ this.prop ];
var r = parseFloat(jQuery.css(this.elem, this.prop, force));
return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem,
this.prop)) || 0;
},
It now works in IE and Safari (still a bit funky in Firefox, but I
think that's the experimental nature of -moz-inline-box). Any
thoughts?
Abhik