@@ -662,229 +662,49 @@ $.fn.extend({
662
662
/*********************************** EASING ***********************************/
663
663
/******************************************************************************/
664
664
665
- /*
666
- * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
667
- *
668
- * Uses the built in easing capabilities added In jQuery 1.1
669
- * to offer multiple easing options
670
- *
671
- * TERMS OF USE - jQuery Easing
672
- *
673
- * Open source under the BSD License.
674
- *
675
- * Copyright 2008 George McGinley Smith
676
- * All rights reserved.
677
- *
678
- * Redistribution and use in source and binary forms, with or without modification,
679
- * are permitted provided that the following conditions are met:
680
- *
681
- * Redistributions of source code must retain the above copyright notice, this list of
682
- * conditions and the following disclaimer.
683
- * Redistributions in binary form must reproduce the above copyright notice, this list
684
- * of conditions and the following disclaimer in the documentation and/or other materials
685
- * provided with the distribution.
686
- *
687
- * Neither the name of the author nor the names of contributors may be used to endorse
688
- * or promote products derived from this software without specific prior written permission.
689
- *
690
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
691
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
692
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
693
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
694
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
695
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
696
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
697
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
698
- * OF THE POSSIBILITY OF SUCH DAMAGE.
699
- *
700
- */
665
+ // based on easing equations from Robert Penner (http://www.robertpenner.com/easing)
701
666
702
- // t: current time, b: begInnIng value, c: change In value, d: duration
703
- $ . easing . jswing = $ . easing . swing ;
667
+ var baseEasings = { } ;
704
668
705
- $ . extend ( $ . easing , {
706
- def : "easeOutQuad" ,
707
- swing : function ( x , t , b , c , d ) {
708
- return $ . easing [ $ . easing . def ] ( x , t , b , c , d ) ;
709
- } ,
710
- easeInQuad : function ( x , t , b , c , d ) {
711
- return c * ( t /= d ) * t + b ;
712
- } ,
713
- easeOutQuad : function ( x , t , b , c , d ) {
714
- return - c * ( t /= d ) * ( t - 2 ) + b ;
715
- } ,
716
- easeInOutQuad : function ( x , t , b , c , d ) {
717
- if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t + b ;
718
- return - c / 2 * ( ( -- t ) * ( t - 2 ) - 1 ) + b ;
719
- } ,
720
- easeInCubic : function ( x , t , b , c , d ) {
721
- return c * ( t /= d ) * t * t + b ;
722
- } ,
723
- easeOutCubic : function ( x , t , b , c , d ) {
724
- return c * ( ( t = t / d - 1 ) * t * t + 1 ) + b ;
725
- } ,
726
- easeInOutCubic : function ( x , t , b , c , d ) {
727
- if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t + b ;
728
- return c / 2 * ( ( t -= 2 ) * t * t + 2 ) + b ;
729
- } ,
730
- easeInQuart : function ( x , t , b , c , d ) {
731
- return c * ( t /= d ) * t * t * t + b ;
732
- } ,
733
- easeOutQuart : function ( x , t , b , c , d ) {
734
- return - c * ( ( t = t / d - 1 ) * t * t * t - 1 ) + b ;
735
- } ,
736
- easeInOutQuart : function ( x , t , b , c , d ) {
737
- if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t + b ;
738
- return - c / 2 * ( ( t -= 2 ) * t * t * t - 2 ) + b ;
739
- } ,
740
- easeInQuint : function ( x , t , b , c , d ) {
741
- return c * ( t /= d ) * t * t * t * t + b ;
742
- } ,
743
- easeOutQuint : function ( x , t , b , c , d ) {
744
- return c * ( ( t = t / d - 1 ) * t * t * t * t + 1 ) + b ;
745
- } ,
746
- easeInOutQuint : function ( x , t , b , c , d ) {
747
- if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t * t + b ;
748
- return c / 2 * ( ( t -= 2 ) * t * t * t * t + 2 ) + b ;
749
- } ,
750
- easeInSine : function ( x , t , b , c , d ) {
751
- return - c * Math . cos ( t / d * ( Math . PI / 2 ) ) + c + b ;
752
- } ,
753
- easeOutSine : function ( x , t , b , c , d ) {
754
- return c * Math . sin ( t / d * ( Math . PI / 2 ) ) + b ;
755
- } ,
756
- easeInOutSine : function ( x , t , b , c , d ) {
757
- return - c / 2 * ( Math . cos ( Math . PI * t / d ) - 1 ) + b ;
758
- } ,
759
- easeInExpo : function ( x , t , b , c , d ) {
760
- return ( t == 0 ) ? b : c * Math . pow ( 2 , 10 * ( t / d - 1 ) ) + b ;
761
- } ,
762
- easeOutExpo : function ( x , t , b , c , d ) {
763
- return ( t == d ) ? b + c : c * ( - Math . pow ( 2 , - 10 * t / d ) + 1 ) + b ;
764
- } ,
765
- easeInOutExpo : function ( x , t , b , c , d ) {
766
- if ( t == 0 ) return b ;
767
- if ( t == d ) return b + c ;
768
- if ( ( t /= d / 2 ) < 1 ) return c / 2 * Math . pow ( 2 , 10 * ( t - 1 ) ) + b ;
769
- return c / 2 * ( - Math . pow ( 2 , - 10 * -- t ) + 2 ) + b ;
770
- } ,
771
- easeInCirc : function ( x , t , b , c , d ) {
772
- return - c * ( Math . sqrt ( 1 - ( t /= d ) * t ) - 1 ) + b ;
773
- } ,
774
- easeOutCirc : function ( x , t , b , c , d ) {
775
- return c * Math . sqrt ( 1 - ( t = t / d - 1 ) * t ) + b ;
776
- } ,
777
- easeInOutCirc : function ( x , t , b , c , d ) {
778
- if ( ( t /= d / 2 ) < 1 ) return - c / 2 * ( Math . sqrt ( 1 - t * t ) - 1 ) + b ;
779
- return c / 2 * ( Math . sqrt ( 1 - ( t -= 2 ) * t ) + 1 ) + b ;
780
- } ,
781
- easeInElastic : function ( x , t , b , c , d ) {
782
- var s = 1.70158 ,
783
- p = d * 0.3 ,
784
- a = c ;
785
- if ( t == 0 ) return b ;
786
- if ( ( t /= d ) == 1 ) return b + c ;
787
- if ( a < Math . abs ( c ) ) {
788
- a = c ;
789
- s = p / 4 ;
790
- } else {
791
- s = p / ( 2 * Math . PI ) * Math . asin ( c / a ) ;
792
- }
793
- return - ( a * Math . pow ( 2 , 10 * ( t -= 1 ) ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) ) + b ;
794
- } ,
795
- easeOutElastic : function ( x , t , b , c , d ) {
796
- var s = 1.70158 ,
797
- p = d * 0.3 ,
798
- a = c ;
799
- if ( t == 0 ) return b ;
800
- if ( ( t /= d ) == 1 ) return b + c ;
801
- if ( a < Math . abs ( c ) ) {
802
- a = c ;
803
- s = p / 4 ;
804
- } else {
805
- s = p / ( 2 * Math . PI ) * Math . asin ( c / a ) ;
806
- }
807
- return a * Math . pow ( 2 , - 10 * t ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) + c + b ;
808
- } ,
809
- easeInOutElastic : function ( x , t , b , c , d ) {
810
- var s = 1.70158 ,
811
- p = d * ( 0.3 * 1.5 ) ,
812
- a = c ;
813
- if ( t == 0 ) return b ;
814
- if ( ( t /= d / 2 ) == 2 ) return b + c ;
815
- if ( a < Math . abs ( c ) ) {
816
- a = c ;
817
- s = p / 4 ;
818
- } else {
819
- s = p / ( 2 * Math . PI ) * Math . asin ( c / a ) ;
820
- }
821
- if ( t < 1 ) return - .5 * ( a * Math . pow ( 2 , 10 * ( t -= 1 ) ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) ) + b ;
822
- return a * Math . pow ( 2 , - 10 * ( t -= 1 ) ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) * .5 + c + b ;
823
- } ,
824
- easeInBack : function ( x , t , b , c , d , s ) {
825
- if ( s == undefined ) s = 1.70158 ;
826
- return c * ( t /= d ) * t * ( ( s + 1 ) * t - s ) + b ;
827
- } ,
828
- easeOutBack : function ( x , t , b , c , d , s ) {
829
- if ( s == undefined ) s = 1.70158 ;
830
- return c * ( ( t = t / d - 1 ) * t * ( ( s + 1 ) * t + s ) + 1 ) + b ;
669
+ $ . each ( [ "Quad" , "Cubic" , "Quart" , "Quint" , "Expo" ] , function ( i , name ) {
670
+ baseEasings [ name ] = function ( p ) {
671
+ return Math . pow ( p , i + 2 ) ;
672
+ } ;
673
+ } ) ;
674
+
675
+ $ . extend ( baseEasings , {
676
+ Sine : function ( p ) {
677
+ return 1 - Math . cos ( p * Math . PI / 2 ) ;
831
678
} ,
832
- easeInOutBack : function ( x , t , b , c , d , s ) {
833
- if ( s == undefined ) s = 1.70158 ;
834
- if ( ( t /= d / 2 ) < 1 ) return c / 2 * ( t * t * ( ( ( s *= 1.525 ) + 1 ) * t - s ) ) + b ;
835
- return c / 2 * ( ( t -= 2 ) * t * ( ( ( s *= 1.525 ) + 1 ) * t + s ) + 2 ) + b ;
679
+ Circ : function ( p ) {
680
+ return 1 - Math . sqrt ( 1 - p * p ) ;
836
681
} ,
837
- easeInBounce : function ( x , t , b , c , d ) {
838
- return c - $ . easing . easeOutBounce ( x , d - t , 0 , c , d ) + b ;
682
+ Elastic : function ( p ) {
683
+ return p === 0 || p === 1 ? p :
684
+ - Math . pow ( 2 , 8 * ( p - 1 ) ) * Math . sin ( ( ( p - 1 ) * 80 - 7.5 ) * Math . PI / 15 ) ;
839
685
} ,
840
- easeOutBounce : function ( x , t , b , c , d ) {
841
- if ( ( t /= d ) < ( 1 / 2.75 ) ) {
842
- return c * ( 7.5625 * t * t ) + b ;
843
- } else if ( t < ( 2 / 2.75 ) ) {
844
- return c * ( 7.5625 * ( t -= ( 1.5 / 2.75 ) ) * t + .75 ) + b ;
845
- } else if ( t < ( 2.5 / 2.75 ) ) {
846
- return c * ( 7.5625 * ( t -= ( 2.25 / 2.75 ) ) * t + .9375 ) + b ;
847
- } else {
848
- return c * ( 7.5625 * ( t -= ( 2.625 / 2.75 ) ) * t + .984375 ) + b ;
849
- }
686
+ Back : function ( p ) {
687
+ return p * p * ( 3 * p - 2 ) ;
850
688
} ,
851
- easeInOutBounce : function ( x , t , b , c , d ) {
852
- if ( t < d / 2 ) return $ . easing . easeInBounce ( x , t * 2 , 0 , c , d ) * .5 + b ;
853
- return $ . easing . easeOutBounce ( x , t * 2 - d , 0 , c , d ) * .5 + c * .5 + b ;
689
+ Bounce : function ( p ) {
690
+ var pow2 ,
691
+ bounce = 4 ;
692
+
693
+ while ( p < ( ( pow2 = Math . pow ( 2 , -- bounce ) ) - 1 ) / 11 ) { }
694
+ return 1 / Math . pow ( 4 , 3 - bounce ) - 7.5625 * Math . pow ( ( pow2 * 3 - 2 ) / 22 - p , 2 ) ;
854
695
}
855
696
} ) ;
856
697
857
- /*
858
- *
859
- * TERMS OF USE - EASING EQUATIONS
860
- *
861
- * Open source under the BSD License.
862
- *
863
- * Copyright 2001 Robert Penner
864
- * All rights reserved.
865
- *
866
- * Redistribution and use in source and binary forms, with or without modification,
867
- * are permitted provided that the following conditions are met:
868
- *
869
- * Redistributions of source code must retain the above copyright notice, this list of
870
- * conditions and the following disclaimer.
871
- * Redistributions in binary form must reproduce the above copyright notice, this list
872
- * of conditions and the following disclaimer in the documentation and/or other materials
873
- * provided with the distribution.
874
- *
875
- * Neither the name of the author nor the names of contributors may be used to endorse
876
- * or promote products derived from this software without specific prior written permission.
877
- *
878
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
879
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
880
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
881
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
882
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
883
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
884
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
885
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
886
- * OF THE POSSIBILITY OF SUCH DAMAGE.
887
- *
888
- */
698
+ $ . each ( baseEasings , function ( name , easeIn ) {
699
+ $ . easing [ "easeIn" + name ] = easeIn ;
700
+ $ . easing [ "easeOut" + name ] = function ( p ) {
701
+ return 1 - easeIn ( 1 - p ) ;
702
+ } ;
703
+ $ . easing [ "easeInOut" + name ] = function ( p ) {
704
+ return p < .5 ?
705
+ easeIn ( p * 2 ) / 2 :
706
+ easeIn ( p * - 2 + 2 ) / - 2 + 1 ;
707
+ } ;
708
+ } ) ;
889
709
890
710
} ) ( jQuery ) ;
0 commit comments