()
| 8347 | prop = jQuery.extend( {}, prop ); |
| 8348 | |
| 8349 | function doAnimation() { |
| 8350 | // XXX 'this' does not always have a nodeName when running the |
| 8351 | // test suite |
| 8352 | |
| 8353 | if ( optall.queue === false ) { |
| 8354 | jQuery._mark( this ); |
| 8355 | } |
| 8356 | |
| 8357 | var opt = jQuery.extend( {}, optall ), |
| 8358 | isElement = this.nodeType === 1, |
| 8359 | hidden = isElement && jQuery(this).is(":hidden"), |
| 8360 | name, val, p, e, |
| 8361 | parts, start, end, unit, |
| 8362 | method; |
| 8363 | |
| 8364 | // will store per property easing and be used to determine when an animation is complete |
| 8365 | opt.animatedProperties = {}; |
| 8366 | |
| 8367 | for ( p in prop ) { |
| 8368 | |
| 8369 | // property name normalization |
| 8370 | name = jQuery.camelCase( p ); |
| 8371 | if ( p !== name ) { |
| 8372 | prop[ name ] = prop[ p ]; |
| 8373 | delete prop[ p ]; |
| 8374 | } |
| 8375 | |
| 8376 | val = prop[ name ]; |
| 8377 | |
| 8378 | // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default) |
| 8379 | if ( jQuery.isArray( val ) ) { |
| 8380 | opt.animatedProperties[ name ] = val[ 1 ]; |
| 8381 | val = prop[ name ] = val[ 0 ]; |
| 8382 | } else { |
| 8383 | opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing'; |
| 8384 | } |
| 8385 | |
| 8386 | if ( val === "hide" && hidden || val === "show" && !hidden ) { |
| 8387 | return opt.complete.call( this ); |
| 8388 | } |
| 8389 | |
| 8390 | if ( isElement && ( name === "height" || name === "width" ) ) { |
| 8391 | // Make sure that nothing sneaks out |
| 8392 | // Record all 3 overflow attributes because IE does not |
| 8393 | // change the overflow attribute when overflowX and |
| 8394 | // overflowY are set to the same value |
| 8395 | opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ]; |
| 8396 | |
| 8397 | // Set display property to inline-block for height/width |
| 8398 | // animations on inline elements that are having width/height animated |
| 8399 | if ( jQuery.css( this, "display" ) === "inline" && |
| 8400 | jQuery.css( this, "float" ) === "none" ) { |
| 8401 | |
| 8402 | // inline-level elements accept inline-block; |
| 8403 | // block-level elements need to be inline with layout |
| 8404 | if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( this.nodeName ) === "inline" ) { |
| 8405 | this.style.display = "inline-block"; |
| 8406 |
nothing calls this directly
no test coverage detected
searching dependent graphs…