1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- ( function( factory ) {
- if ( typeof define === "function" && define.amd ) {
-
- define( [
- "jquery",
- "../version",
- "../effect"
- ], factory );
- } else {
-
- factory( jQuery );
- }
- }( function( $ ) {
- return $.effects.define( "shake", function( options, done ) {
- var i = 1,
- element = $( this ),
- direction = options.direction || "left",
- distance = options.distance || 20,
- times = options.times || 3,
- anims = times * 2 + 1,
- speed = Math.round( options.duration / anims ),
- ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
- positiveMotion = ( direction === "up" || direction === "left" ),
- animation = {},
- animation1 = {},
- animation2 = {},
- queuelen = element.queue().length;
- $.effects.createPlaceholder( element );
-
- animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance;
- animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2;
- animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2;
-
- element.animate( animation, speed, options.easing );
-
- for ( ; i < times; i++ ) {
- element
- .animate( animation1, speed, options.easing )
- .animate( animation2, speed, options.easing );
- }
- element
- .animate( animation1, speed, options.easing )
- .animate( animation, speed / 2, options.easing )
- .queue( done );
- $.effects.unshift( element, queuelen, anims + 1 );
- } );
- } ) );
|