mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Effects: Respect display value on inline elements
Take "olddisplay" value into the account
Fixes #14824
Closes gh-1566
Ref 73fe17299a
This commit is contained in:
parent
bbace100a3
commit
c34dbf5a8d
10
src/effects.js
vendored
10
src/effects.js
vendored
@ -116,7 +116,7 @@ function createTween( value, prop, animation ) {
|
|||||||
|
|
||||||
function defaultPrefilter( elem, props, opts ) {
|
function defaultPrefilter( elem, props, opts ) {
|
||||||
/* jshint validthis: true */
|
/* jshint validthis: true */
|
||||||
var prop, value, toggle, tween, hooks, oldfire, display,
|
var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
|
||||||
anim = this,
|
anim = this,
|
||||||
orig = {},
|
orig = {},
|
||||||
style = elem.style,
|
style = elem.style,
|
||||||
@ -160,10 +160,12 @@ function defaultPrefilter( elem, props, opts ) {
|
|||||||
// Set display property to inline-block for height/width
|
// Set display property to inline-block for height/width
|
||||||
// animations on inline elements that are having width/height animated
|
// animations on inline elements that are having width/height animated
|
||||||
display = jQuery.css( elem, "display" );
|
display = jQuery.css( elem, "display" );
|
||||||
// Test default display if display is currently "none"
|
|
||||||
if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" &&
|
|
||||||
jQuery.css( elem, "float" ) === "none" ) {
|
|
||||||
|
|
||||||
|
// Test default display if display is currently "none"
|
||||||
|
checkDisplay = display === "none" ?
|
||||||
|
data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
|
||||||
|
|
||||||
|
if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
|
||||||
style.display = "inline-block";
|
style.display = "inline-block";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -138,4 +138,7 @@ section { background:#f0f; display:block; }
|
|||||||
/* #11971 */
|
/* #11971 */
|
||||||
#foo { background: url(1x1.jpg) right bottom no-repeat; }
|
#foo { background: url(1x1.jpg) right bottom no-repeat; }
|
||||||
|
|
||||||
|
/* #14824 */
|
||||||
|
#span-14824 { display: block; }
|
||||||
|
|
||||||
#display { display: list-item !important; }
|
#display { display: list-item !important; }
|
||||||
|
24
test/unit/effects.js
vendored
24
test/unit/effects.js
vendored
@ -2158,4 +2158,28 @@ test( "slideDown() after stop() (#13483)", 2, function() {
|
|||||||
clock.tick( 10 );
|
clock.tick( 10 );
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test( "Respect display value on inline elements (#14824)", 2, function() {
|
||||||
|
var clock = this.clock,
|
||||||
|
fromStyleSheet = jQuery( "<span id='span-14824' />" ),
|
||||||
|
fromStyleAttr = jQuery( "<span style='display: block;' />" );
|
||||||
|
|
||||||
|
jQuery( "#qunit-fixture" ).append( fromStyleSheet, fromStyleAttr );
|
||||||
|
|
||||||
|
fromStyleSheet.slideUp(function() {
|
||||||
|
jQuery( this ).slideDown( function() {
|
||||||
|
equal( jQuery( this ).css( "display" ), "block",
|
||||||
|
"Respect previous display value (from stylesheet) on span element" );
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
fromStyleAttr.slideUp( function() {
|
||||||
|
jQuery( this ).slideDown( function() {
|
||||||
|
equal( jQuery( this ).css( "display" ), "block",
|
||||||
|
"Respect previous display value (from style attribute) on span element" );
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
clock.tick( 800 );
|
||||||
|
});
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
Loading…
Reference in New Issue
Block a user