aboutsummaryrefslogtreecommitdiffstats
path: root/ui/effects/effect-drop.js
diff options
context:
space:
mode:
authorAlexander Schmitz <arschmitz@gmail.com>2015-07-14 22:01:41 -0400
committerAlexander Schmitz <arschmitz@gmail.com>2015-08-08 00:29:38 -0400
commit59ea81003da93d74414989a6c49498183e501289 (patch)
treed31adff0bfafbde19994e55c634a53bbcf599dc2 /ui/effects/effect-drop.js
parent3b2db14b3beb1d5abbb2b9d102b1afa14733fef2 (diff)
downloadjquery-ui-59ea81003da93d74414989a6c49498183e501289.tar.gz
jquery-ui-59ea81003da93d74414989a6c49498183e501289.zip
Effects: Move individual effects into effects folder
Ref #13885
Diffstat (limited to 'ui/effects/effect-drop.js')
-rw-r--r--ui/effects/effect-drop.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/ui/effects/effect-drop.js b/ui/effects/effect-drop.js
new file mode 100644
index 000000000..059fd54ca
--- /dev/null
+++ b/ui/effects/effect-drop.js
@@ -0,0 +1,68 @@
+/*!
+ * jQuery UI Effects Drop @VERSION
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Drop Effect
+//>>group: Effects
+//>>description: Moves an element in one direction and hides it at the same time.
+//>>docs: http://api.jqueryui.com/drop-effect/
+//>>demos: http://jqueryui.com/effect/
+
+( function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define( [
+ "jquery",
+ "../version",
+ "../effect"
+ ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery );
+ }
+}( function( $ ) {
+
+return $.effects.define( "drop", "hide", function( options, done ) {
+
+ var distance,
+ element = $( this ),
+ mode = options.mode,
+ show = mode === "show",
+ direction = options.direction || "left",
+ ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+ motion = ( direction === "up" || direction === "left" ) ? "-=" : "+=",
+ oppositeMotion = ( motion === "+=" ) ? "-=" : "+=",
+ animation = {
+ opacity: 0
+ };
+
+ $.effects.createPlaceholder( element );
+
+ distance = options.distance || element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2;
+
+ animation[ ref ] = motion + distance;
+
+ if ( show ) {
+ element.css( animation );
+
+ animation[ ref ] = oppositeMotion + distance;
+ animation.opacity = 1;
+ }
+
+ // Animate
+ element.animate( animation, {
+ queue: false,
+ duration: options.duration,
+ easing: options.easing,
+ complete: done
+ } );
+} );
+
+} ) );