MCPcopy
hub / github.com/requirejs/requirejs / doAnimation

Function doAnimation

tests/jquery/scripts/jquery-1.7.1.js:8349–8464  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 2

jQueryFunction · 0.85
defaultDisplayFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…