pnum = require( "./var/pnum" ),
cssExpand = require( "./css/var/cssExpand" ),
isHidden = require( "./css/var/isHidden" ),
+ defaultDisplay = require( "./css/defaultDisplay" ),
data_priv = require( "./data/var/data_priv" ),
+
fxNow, timerId,
rfxtypes = /^(?:toggle|show|hide)$/,
rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ),
// if we include width, step value is 1 to do all cssExpand values,
// if we don't include width, step value is 2 to skip over Left and Right
- includeWidth = includeWidth? 1 : 0;
+ includeWidth = includeWidth ? 1 : 0;
for( ; i < 4 ; i += 2 - includeWidth ) {
which = cssExpand[ i ];
attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
function defaultPrefilter( elem, props, opts ) {
/* jshint validthis: true */
- var prop, value, toggle, tween, hooks, oldfire,
+ var prop, value, toggle, tween, hooks, oldfire, display,
anim = this,
orig = {},
style = elem.style,
// Set display property to inline-block for height/width
// animations on inline elements that are having width/height animated
- if ( jQuery.css( elem, "display" ) === "inline" &&
+ display = jQuery.css( elem, "display" );
+ // Get default display if display is currently "none"
+ if ( display === "none" ) {
+ display = defaultDisplay( elem.nodeName );
+ }
+ if ( display === "inline" &&
jQuery.css( elem, "float" ) === "none" ) {
style.display = "inline-block";
num = 0;
jQuery("#test-table").remove();
+ // Note: inline elements are expected to be inline-block
+ // because we're showing width/height
+ // Can't animate width/height inline
+ // See #14344
test = {
"div" : "block",
"p" : "block",
- "a" : "inline",
- "code" : "inline",
+ "a" : "inline-block",
+ "code" : "inline-block",
"pre" : "block",
- "span" : "inline",
+ "span" : "inline-block",
"table" : old ? "block" : "table",
"thead" : old ? "block" : "table-header-group",
"tbody" : old ? "block" : "table-row-group",