Effects: Respect display value on inline elements

Take "olddisplay" value into the account

Fixes #14824
Closes gh-1566
Ref 73fe17299a

(cherry-picked from c34dbf5a8d)
Conflicts:
	src/effects.js
This commit is contained in:
Oleg Gaidarenko
2014-04-26 21:24:05 +04:00
parent 874304fc30
commit f833c9af57
3 changed files with 33 additions and 3 deletions

9
src/effects.js vendored
View File

@@ -116,7 +116,7 @@ function createTween( value, prop, animation ) {
function defaultPrefilter( elem, props, opts ) {
/* jshint validthis: true */
var prop, value, toggle, tween, hooks, oldfire, display,
var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
anim = this,
orig = {},
style = elem.style,
@@ -160,9 +160,12 @@ function defaultPrefilter( elem, props, opts ) {
// Set display property to inline-block for height/width
// animations on inline elements that are having width/height animated
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" ) {
checkDisplay = display === "none" ?
jQuery._data( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
// inline-level elements accept inline-block;
// block-level elements need to be inline with layout