diff options
author | gnarf <gnarf@gnarf.net> | 2011-03-06 20:44:35 -0600 |
---|---|---|
committer | gnarf <gnarf@gnarf.net> | 2011-03-06 20:44:35 -0600 |
commit | 703cd82cd0a2cae1aa7b9ecc5457c8e3afaa9905 (patch) | |
tree | dd8189775507209641ce905f1d7319d97e07d75c /ui/jquery.effects.core.js | |
parent | 576cd0b92b7469a1f8836dcd7c942083a4d1326d (diff) | |
download | jquery-ui-703cd82cd0a2cae1aa7b9ecc5457c8e3afaa9905.tar.gz jquery-ui-703cd82cd0a2cae1aa7b9ecc5457c8e3afaa9905.zip |
effects.core: Style Guidance
Diffstat (limited to 'ui/jquery.effects.core.js')
-rw-r--r-- | ui/jquery.effects.core.js | 525 |
1 files changed, 286 insertions, 239 deletions
diff --git a/ui/jquery.effects.core.js b/ui/jquery.effects.core.js index cbfd4fbe1..6024c36b0 100644 --- a/ui/jquery.effects.core.js +++ b/ui/jquery.effects.core.js @@ -11,8 +11,6 @@ $.effects = {}; - - /******************************************************************************/ /****************************** COLOR ANIMATIONS ******************************/ /******************************************************************************/ @@ -144,7 +142,7 @@ var colors = { /****************************** CLASS ANIMATIONS ******************************/ /******************************************************************************/ -var classAnimationActions = ['add', 'remove', 'toggle'], +var classAnimationActions = [ 'add', 'remove', 'toggle' ], shorthandStyles = { border: 1, borderBottom: 1, @@ -163,24 +161,25 @@ function getElementStyles() { : this.currentStyle, newStyle = {}, key, - camelCase; + camelCase, + len; // webkit enumerates style porperties - if (style && style.length && style[0] && style[style[0]]) { - var len = style.length; - while (len--) { - key = style[len]; - if (typeof style[key] == 'string') { - camelCase = key.replace(/\-(\w)/g, function(all, letter){ + if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) { + len = style.length; + while ( len-- ) { + key = style[ len ]; + if ( typeof style[ key ] == 'string' ) { + camelCase = key.replace( /\-(\w)/g, function( all, letter ) { return letter.toUpperCase(); }); - newStyle[camelCase] = style[key]; + newStyle[ camelCase ] = style[ key ]; } } } else { - for (key in style) { - if (typeof style[key] === 'string') { - newStyle[key] = style[key]; + for ( key in style ) { + if ( typeof style[ key ] === 'string' ) { + newStyle[ key ] = style[ key ]; } } } @@ -188,115 +187,126 @@ function getElementStyles() { return newStyle; } -function filterStyles(styles) { +function filterStyles( styles ) { var name, value; - for (name in styles) { - value = styles[name]; + for ( name in styles ) { + value = styles[ name ]; if ( // ignore null and undefined values value == null || // ignore functions (when does this occur?) - $.isFunction(value) || + $.isFunction( value ) || // shorthand styles that need to be expanded name in shorthandStyles || // ignore scrollbars (break in IE) - (/scrollbar/).test(name) || + ( /scrollbar/ ).test( name ) || // only colors or values that can be converted to numbers - (!(/color/i).test(name) && isNaN(parseFloat(value))) + ( !( /color/i ).test( name ) && isNaN( parseFloat( value ) ) ) ) { - delete styles[name]; + delete styles[ name ]; } } return styles; } -function styleDifference(oldStyle, newStyle) { +function styleDifference( oldStyle, newStyle ) { var diff = { _: 0 }, // http://dev.jquery.com/ticket/5459 name; - for (name in newStyle) { - if (oldStyle[name] != newStyle[name]) { - diff[name] = newStyle[name]; + for ( name in newStyle ) { + if ( oldStyle[ name ] != newStyle[ name ] ) { + diff[ name ] = newStyle[ name ]; } } return diff; } -$.effects.animateClass = function(value, duration, easing, callback) { - if ($.isFunction(easing)) { +$.effects.animateClass = function( value, duration, easing, callback ) { + if ( $.isFunction( easing ) ) { callback = easing; easing = null; } - return this.queue('fx', function() { - var that = $(this), - originalStyleAttr = that.attr('style') || ' ', - originalStyle = filterStyles(getElementStyles.call(this)), + return this.queue( 'fx', function() { + var that = $( this ), + originalStyleAttr = that.attr( 'style' ) || ' ', + originalStyle = filterStyles( getElementStyles.call( this ) ), newStyle, - className = that.attr('className'); + className = that.attr( 'className' ); - $.each(classAnimationActions, function(i, action) { - if (value[action]) { - that[action + 'Class'](value[action]); + $.each( classAnimationActions, function(i, action) { + if ( value[ action ] ) { + that[ action + 'Class' ]( value[ action ] ); } }); - newStyle = filterStyles(getElementStyles.call(this)); - that.attr('className', className); + newStyle = filterStyles( getElementStyles.call( this ) ); + that.attr( 'className', className ); - that.animate(styleDifference(originalStyle, newStyle), duration, easing, function() { - $.each(classAnimationActions, function(i, action) { - if (value[action]) { that[action + 'Class'](value[action]); } + that.animate( styleDifference( originalStyle, newStyle ), duration, easing, function() { + $.each( classAnimationActions, function( i, action ) { + if ( value[ action ] ) { + that[ action + 'Class' ]( value[ action ] ); + } }); // work around bug in IE by clearing the cssText before setting it - if (typeof that.attr('style') == 'object') { - that.attr('style').cssText = ''; - that.attr('style').cssText = originalStyleAttr; + if ( typeof that.attr( 'style' ) == 'object' ) { + that.attr( 'style' ).cssText = ''; + that.attr( 'style' ).cssText = originalStyleAttr; } else { - that.attr('style', originalStyleAttr); + that.attr( 'style', originalStyleAttr ); + } + if ( callback ) { + callback.apply( this, arguments ); } - if (callback) { callback.apply(this, arguments); } }); // $.animate adds a function to the end of the queue // but we want it at the front - var queue = $.queue(this), - anim = queue.splice(queue.length - 1, 1)[0]; - queue.splice(1, 0, anim); - $.dequeue(this); + var queue = $.queue( this ), + anim = queue.splice( queue.length - 1, 1 )[ 0 ]; + queue.splice( 1, 0, anim ); + $.dequeue( this ); }); }; $.fn.extend({ _addClass: $.fn.addClass, - addClass: function(classNames, speed, easing, callback) { - return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames); + addClass: function( classNames, speed, easing, callback ) { + return speed ? + $.effects.animateClass.apply( this, [{ add: classNames }, speed, easing, callback ]) : + this._addClass(classNames); }, _removeClass: $.fn.removeClass, - removeClass: function(classNames,speed,easing,callback) { - return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames); + removeClass: function( classNames, speed, easing, callback ) { + return speed ? + $.effects.animateClass.apply( this, [{ remove: classNames }, speed, easing, callback ]) : + this._removeClass(classNames); }, _toggleClass: $.fn.toggleClass, - toggleClass: function(classNames, force, speed, easing, callback) { + toggleClass: function( classNames, force, speed, easing, callback ) { if ( typeof force == "boolean" || force === undefined ) { if ( !speed ) { // without speed parameter; - return this._toggleClass(classNames, force); + return this._toggleClass( classNames, force ); } else { - return $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]); + return $.effects.animateClass.apply( this, [( force ? { add:classNames } : { remove:classNames }), speed, easing, callback ]); } } else { // without switch parameter; - return $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]); + return $.effects.animateClass.apply( this, [{ toggle: classNames }, force, speed, easing ]); } }, - switchClass: function(remove,add,speed,easing,callback) { - return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]); + switchClass: function( remove, add, speed, easing, callback) { + return $.effects.animateClass.apply( this, [{ + add: add, + remove: remove + }, speed, easing, callback ]); } }); @@ -306,51 +316,61 @@ $.fn.extend({ /*********************************** EFFECTS **********************************/ /******************************************************************************/ -$.extend($.effects, { +$.extend( $.effects, { version: "@VERSION", // Saves a set of properties in a data storage - save: function(element, set) { - for(var i=0; i < set.length; i++) { - if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]); + save: function( element, set ) { + for( var i=0; i < set.length; i++ ) { + if ( set[ i ] !== null ) { + element.data( "ec.storage." + set[ i ], element[ 0 ].style[ set[ i ] ] ); + } } }, // Restores a set of previously saved properties from a data storage - restore: function(element, set) { - for(var i=0; i < set.length; i++) { - if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i])); + restore: function( element, set ) { + for( var i=0; i < set.length; i++ ) { + if ( set[ i ] !== null ) { + element.css( set[ i ], element.data( "ec.storage." + set[ i ] ) ); + } } }, - setMode: function(el, mode) { - if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle + setMode: function( el, mode ) { + if (mode == 'toggle') { + mode = el.is( ':hidden' ) ? 'show' : 'hide'; + } return mode; }, - getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value - // this should be a little more flexible in the future to handle a string & hash + // Translates a [top,left] array into a baseline value + // this should be a little more flexible in the future to handle a string & hash + getBaseline: function( origin, original ) { var y, x; - switch (origin[0]) { + switch ( origin[ 0 ] ) { case 'top': y = 0; break; case 'middle': y = 0.5; break; case 'bottom': y = 1; break; - default: y = origin[0] / original.height; + default: y = origin[ 0 ] / original.height; }; - switch (origin[1]) { + switch ( origin[ 1 ] ) { case 'left': x = 0; break; case 'center': x = 0.5; break; case 'right': x = 1; break; - default: x = origin[1] / original.width; + default: x = origin[ 1 ] / original.width; + }; + return { + x: x, + y: y }; - return {x: x, y: y}; }, // Wraps the element around a wrapper that copies position properties - createWrapper: function(element) { + createWrapper: function( element ) { // if the element is already wrapped, return it - if (element.parent().is('.ui-effects-wrapper')) { + if ( element.parent().is( '.ui-effects-wrapper' )) { return element.parent(); } @@ -358,10 +378,10 @@ $.extend($.effects, { var props = { width: element.outerWidth(true), height: element.outerHeight(true), - 'float': element.css('float') + 'float': element.css( 'float' ) }, - wrapper = $('<div></div>') - .addClass('ui-effects-wrapper') + wrapper = $( '<div></div>' ) + .addClass( 'ui-effects-wrapper' ) .css({ fontSize: '100%', background: 'transparent', @@ -370,41 +390,47 @@ $.extend($.effects, { padding: 0 }); - element.wrap(wrapper); + element.wrap( wrapper ); wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element // transfer positioning properties to the wrapper - if (element.css('position') == 'static') { + if ( element.css( 'position' ) == 'static' ) { wrapper.css({ position: 'relative' }); element.css({ position: 'relative' }); } else { - $.extend(props, { - position: element.css('position'), - zIndex: element.css('z-index') + $.extend( props, { + position: element.css( 'position' ), + zIndex: element.css( 'z-index' ) }); - $.each(['top', 'left', 'bottom', 'right'], function(i, pos) { - props[pos] = element.css(pos); - if (isNaN(parseInt(props[pos], 10))) { - props[pos] = 'auto'; + $.each([ 'top', 'left', 'bottom', 'right' ], function(i, pos) { + props[ pos ] = element.css( pos ); + if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { + props[ pos ] = 'auto'; } }); - element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' }); + element.css({ + position: 'relative', + top: 0, + left: 0, + right: 'auto', + bottom: 'auto' + }); } - return wrapper.css(props).show(); + return wrapper.css( props ).show(); }, - removeWrapper: function(element) { - if (element.parent().is('.ui-effects-wrapper')) - return element.parent().replaceWith(element); + removeWrapper: function( element ) { + if ( element.parent().is( '.ui-effects-wrapper' ) ) + return element.parent().replaceWith( element ); return element; }, - setTransition: function(element, list, factor, value) { + setTransition: function( element, list, factor, value ) { value = value || {}; - $.each(list, function(i, x){ - unit = element.cssUnit(x); - if (unit[0] > 0) value[x] = unit[0] * factor + unit[1]; + $.each( list, function(i, x){ + unit = element.cssUnit( x ); + if ( unit[ 0 ] > 0 ) value[ x ] = unit[ 0 ] * factor + unit[ 1 ]; }); return value; } @@ -470,66 +496,68 @@ function standardSpeed( speed ) { } $.fn.extend({ - effect: function(effect, options, speed, callback) { - var args = _normalizeArguments.apply(this, arguments), + effect: function( effect, options, speed, callback ) { + var args = _normalizeArguments.apply( this, arguments ), mode = args.mode, - effectMethod = $.effects[args.effect]; + effectMethod = $.effects[ args.effect ]; if ( $.fx.off || !effectMethod ) { // delegate to the original method (e.g., .show()) if possible if ( mode ) { return this[ mode ]( args.duration, args.callback ); } else { - return this.each(function() { + return this.each( function() { if ( args.callback ) { args.callback.call( this ); } }); } } - return effectMethod.call(this, args); + return effectMethod.call( this, args ); }, _show: $.fn.show, - show: function(speed) { + show: function( speed ) { if ( standardSpeed( speed ) ) { - return this._show.apply(this, arguments); + return this._show.apply( this, arguments ); } else { - var args = _normalizeArguments.apply(this, arguments); + var args = _normalizeArguments.apply( this, arguments ); args.mode = 'show'; - return this.effect.call(this, args); + return this.effect.call( this, args ); } }, _hide: $.fn.hide, - hide: function(speed) { + hide: function( speed ) { if ( standardSpeed( speed ) ) { - return this._hide.apply(this, arguments); + return this._hide.apply( this, arguments ); } else { - var args = _normalizeArguments.apply(this, arguments); + var args = _normalizeArguments.apply( this, arguments ); args.mode = 'hide'; - return this.effect.call(this, args); + return this.effect.call( this, args ); } }, // jQuery core overloads toggle and creates _toggle __toggle: $.fn.toggle, - toggle: function(speed) { + toggle: function( speed ) { if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) { - return this.__toggle.apply(this, arguments); + return this.__toggle.apply( this, arguments ); } else { - var args = _normalizeArguments.apply(this, arguments); + var args = _normalizeArguments.apply( this, arguments ); args.mode = 'toggle'; - return this.effect.call(this, args); + return this.effect.call( this, args ); } }, // helper functions cssUnit: function(key) { - var style = this.css(key), val = []; - $.each( ['em','px','%','pt'], function(i, unit){ - if(style.indexOf(unit) > 0) - val = [parseFloat(style), unit]; + var style = this.css( key ), + val = []; + + $.each( [ 'em', 'px', '%', 'pt' ], function( i, unit ) { + if ( style.indexOf( unit ) > 0 ) + val = [ parseFloat( style ), unit ]; }); return val; } @@ -581,136 +609,155 @@ $.fn.extend({ // t: current time, b: begInnIng value, c: change In value, d: duration $.easing.jswing = $.easing.swing; -$.extend($.easing, -{ +$.extend( $.easing, { def: 'easeOutQuad', - swing: function (x, t, b, c, d) { - //alert($.easing.default); - return $.easing[$.easing.def](x, t, b, c, d); + swing: function ( x, t, b, c, d ) { + return $.easing[ $.easing.def ]( x, t, b, c, d ); + }, + easeInQuad: function ( x, t, b, c, d ) { + return c * ( t /= d ) * t + b; + }, + easeOutQuad: function ( x, t, b, c, d ) { + return -c * ( t /= d ) * ( t - 2 ) + b; + }, + easeInOutQuad: function ( x, t, b, c, d ) { + if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t + b; + return -c / 2 * ( ( --t ) * ( t-2 ) - 1) + b; + }, + easeInCubic: function ( x, t, b, c, d ) { + return c * ( t /= d ) * t * t + b; + }, + easeOutCubic: function ( x, t, b, c, d ) { + return c * ( ( t = t / d - 1 ) * t * t + 1 ) + b; + }, + easeInOutCubic: function ( x, t, b, c, d ) { + if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t + b; + return c / 2 * ( ( t -= 2 ) * t * t + 2) + b; }, - easeInQuad: function (x, t, b, c, d) { - return c*(t/=d)*t + b; + easeInQuart: function ( x, t, b, c, d ) { + return c * ( t /= d ) * t * t * t + b; }, - easeOutQuad: function (x, t, b, c, d) { - return -c *(t/=d)*(t-2) + b; + easeOutQuart: function ( x, t, b, c, d ) { + return -c * ( ( t = t / d - 1 ) * t * t * t - 1) + b; }, - easeInOutQuad: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t + b; - return -c/2 * ((--t)*(t-2) - 1) + b; + easeInOutQuart: function ( x, t, b, c, d ) { + if ( (t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t + b; + return -c / 2 * ( ( t -= 2 ) * t * t * t - 2) + b; }, - easeInCubic: function (x, t, b, c, d) { - return c*(t/=d)*t*t + b; + easeInQuint: function ( x, t, b, c, d ) { + return c * ( t /= d ) * t * t * t * t + b; }, - easeOutCubic: function (x, t, b, c, d) { - return c*((t=t/d-1)*t*t + 1) + b; - }, - easeInOutCubic: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t + b; - return c/2*((t-=2)*t*t + 2) + b; - }, - easeInQuart: function (x, t, b, c, d) { - return c*(t/=d)*t*t*t + b; - }, - easeOutQuart: function (x, t, b, c, d) { - return -c * ((t=t/d-1)*t*t*t - 1) + b; - }, - easeInOutQuart: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t*t + b; - return -c/2 * ((t-=2)*t*t*t - 2) + b; - }, - easeInQuint: function (x, t, b, c, d) { - return c*(t/=d)*t*t*t*t + b; - }, - easeOutQuint: function (x, t, b, c, d) { - return c*((t=t/d-1)*t*t*t*t + 1) + b; - }, - easeInOutQuint: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; - return c/2*((t-=2)*t*t*t*t + 2) + b; - }, - easeInSine: function (x, t, b, c, d) { - return -c * Math.cos(t/d * (Math.PI/2)) + c + b; - }, - easeOutSine: function (x, t, b, c, d) { - return c * Math.sin(t/d * (Math.PI/2)) + b; - }, - easeInOutSine: function (x, t, b, c, d) { - return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; - }, - easeInExpo: function (x, t, b, c, d) { - return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; - }, - easeOutExpo: function (x, t, b, c, d) { - return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; - }, - easeInOutExpo: function (x, t, b, c, d) { - if (t==0) return b; - if (t==d) return b+c; - if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; - return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; - }, - easeInCirc: function (x, t, b, c, d) { - return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; - }, - easeOutCirc: function (x, t, b, c, d) { - return c * Math.sqrt(1 - (t=t/d-1)*t) + b; - }, - easeInOutCirc: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; - return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; - }, - easeInElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - }, - easeOutElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; - }, - easeInOutElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; - }, - easeInBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - return c*(t/=d)*t*((s+1)*t - s) + b; - }, - easeOutBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; - }, - easeInOutBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; - return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; + easeOutQuint: function ( x, t, b, c, d ) { + return c * ( ( t = t / d - 1 ) * t * t * t * t + 1) + b; }, - easeInBounce: function (x, t, b, c, d) { - return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b; - }, - easeOutBounce: function (x, t, b, c, d) { - if ((t/=d) < (1/2.75)) { - return c*(7.5625*t*t) + b; - } else if (t < (2/2.75)) { - return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; - } else if (t < (2.5/2.75)) { - return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + easeInOutQuint: function ( x, t, b, c, d ) { + if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t * t + b; + return c / 2 * ( ( t -= 2 ) * t * t * t * t + 2) + b; + }, + easeInSine: function ( x, t, b, c, d ) { + return -c * Math.cos( t / d * ( Math.PI / 2 ) ) + c + b; + }, + easeOutSine: function ( x, t, b, c, d ) { + return c * Math.sin( t / d * ( Math.PI /2 ) ) + b; + }, + easeInOutSine: function ( x, t, b, c, d ) { + return -c / 2 * ( Math.cos( Math.PI * t / d ) - 1 ) + b; + }, + easeInExpo: function ( x, t, b, c, d ) { + return ( t==0 ) ? b : c * Math.pow( 2, 10 * ( t / d - 1) ) + b; + }, + easeOutExpo: function ( x, t, b, c, d ) { + return ( t==d ) ? b + c : c * ( -Math.pow( 2, -10 * t / d) + 1) + b; + }, + easeInOutExpo: function ( x, t, b, c, d ) { + if ( t==0 ) return b; + if ( t==d ) return b + c; + if ( ( t /= d / 2) < 1) return c / 2 * Math.pow( 2, 10 * (t - 1) ) + b; + return c / 2 * ( -Math.pow( 2, -10 * --t ) + 2 ) + b; + }, + easeInCirc: function ( x, t, b, c, d ) { + return -c * ( Math.sqrt( 1 - ( t /= d ) * t ) - 1 ) + b; + }, + easeOutCirc: function ( x, t, b, c, d ) { + return c * Math.sqrt( 1 - ( t = t / d - 1 ) * t ) + b; + }, + easeInOutCirc: function ( x, t, b, c, d ) { + if ( ( t /= d / 2) < 1 ) return -c / 2 * ( Math.sqrt( 1 - t * t ) - 1 ) + b; + return c / 2 * ( Math.sqrt( 1 - ( t -= 2 ) * t ) + 1 ) + b; + }, + easeInElastic: function ( x, t, b, c, d ) { + var s = 1.70158, + p = d * 0.3, + a = c; + if ( t == 0 ) return b; + if ( ( t /= d ) == 1 ) return b+c; + if ( a < Math.abs( c ) ) { + a = c; + s = p / 4; + } else { + s = p / ( 2 * Math.PI ) * Math.asin( c / a ); + } + return - ( a * Math.pow( 2, 10 * ( t -= 1 ) ) * Math.sin( ( t * d - s) * ( 2 * Math.PI ) / p ) ) + b; + }, + easeOutElastic: function ( x, t, b, c, d ) { + var s = 1.70158, + p = d * 0.3, + a = c; + if ( t == 0 ) return b; + if ( ( t /= d ) == 1 ) return b+c; + if ( a < Math.abs( c ) ) { + a = c; + s = p / 4; + } else { + s = p / ( 2 * Math.PI ) * Math.asin( c / a ); + } + return a * Math.pow( 2, -10 * t ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) + c + b; + }, + easeInOutElastic: function ( x, t, b, c, d ) { + var s = 1.70158, + p = d * ( 0.3 * 1.5 ), + a = c; + if ( t == 0 ) return b; + if ( ( t /= d / 2 ) == 2 ) return b+c; + if ( a < Math.abs( c ) ) { + a = c; + s = p / 4; + } else { + s = p / ( 2 * Math.PI ) * Math.asin( c / a ); + } + if ( t < 1 ) return -.5 * ( a * Math.pow( 2, 10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) ) + b; + return a * Math.pow( 2, -10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) *.5 + c + b; + }, + easeInBack: function ( x, t, b, c, d, s ) { + if ( s == undefined ) s = 1.70158; + return c * ( t /= d ) * t * ( ( s+1 ) * t - s ) + b; + }, + easeOutBack: function ( x, t, b, c, d, s ) { + if ( s == undefined ) s = 1.70158; + return c * ( ( t = t / d - 1 ) * t * ( ( s + 1 ) * t + s) + 1) + b; + }, + easeInOutBack: function ( x, t, b, c, d, s ) { + if ( s == undefined ) s = 1.70158; + if ( ( t /= d / 2 ) < 1 ) return c / 2 * ( t * t * ( ( ( s *= 1.525 ) + 1 ) * t - s ) ) + b; + return c / 2 * ( ( t -= 2 ) * t * ( ( ( s *= 1.525 ) + 1 ) * t + s) + 2) + b; + }, + easeInBounce: function ( x, t, b, c, d ) { + return c - $.easing.easeOutBounce( x, d - t, 0, c, d ) + b; + }, + easeOutBounce: function ( x, t, b, c, d ) { + if ( ( t /= d ) < ( 1 / 2.75 ) ) { + return c * ( 7.5625 * t * t ) + b; + } else if ( t < ( 2 / 2.75 ) ) { + return c * ( 7.5625 * ( t -= ( 1.5 / 2.75 ) ) * t + .75 ) + b; + } else if ( t < ( 2.5 / 2.75 ) ) { + return c * ( 7.5625 * ( t -= ( 2.25/ 2.75 ) ) * t + .9375 ) + b; } else { - return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + return c * ( 7.5625 * ( t -= ( 2.625 / 2.75 ) ) * t + .984375 ) + b; } }, - easeInOutBounce: function (x, t, b, c, d) { - if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; - return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; + easeInOutBounce: function ( x, t, b, c, d ) { + if ( t < d / 2 ) return $.easing.easeInBounce( x, t * 2, 0, c, d ) * .5 + b; + return $.easing.easeOutBounce( x, t * 2 - d, 0, c, d ) * .5 + c * .5 + b; } }); |