Merge "Special:Upload should not crash on failing previews"
[mediawiki.git] / resources / lib / jquery.ui / jquery.ui.effect-drop.js
blob83c8ef4d31b5c78d44c669338d62159e53cb1ee0
1 /*!
2  * jQuery UI Effects Drop 1.9.2
3  * http://jqueryui.com
4  *
5  * Copyright 2012 jQuery Foundation and other contributors
6  * Released under the MIT license.
7  * http://jquery.org/license
8  *
9  * http://api.jqueryui.com/drop-effect/
10  *
11  * Depends:
12  *      jquery.ui.effect.js
13  */
14 (function( $, undefined ) {
16 $.effects.effect.drop = function( o, done ) {
18         var el = $( this ),
19                 props = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ],
20                 mode = $.effects.setMode( el, o.mode || "hide" ),
21                 show = mode === "show",
22                 direction = o.direction || "left",
23                 ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
24                 motion = ( direction === "up" || direction === "left" ) ? "pos" : "neg",
25                 animation = {
26                         opacity: show ? 1 : 0
27                 },
28                 distance;
30         // Adjust
31         $.effects.save( el, props );
32         el.show();
33         $.effects.createWrapper( el );
35         distance = o.distance || el[ ref === "top" ? "outerHeight": "outerWidth" ]( true ) / 2;
37         if ( show ) {
38                 el
39                         .css( "opacity", 0 )
40                         .css( ref, motion === "pos" ? -distance : distance );
41         }
43         // Animation
44         animation[ ref ] = ( show ?
45                 ( motion === "pos" ? "+=" : "-=" ) :
46                 ( motion === "pos" ? "-=" : "+=" ) ) +
47                 distance;
49         // Animate
50         el.animate( animation, {
51                 queue: false,
52                 duration: o.duration,
53                 easing: o.easing,
54                 complete: function() {
55                         if ( mode === "hide" ) {
56                                 el.hide();
57                         }
58                         $.effects.restore( el, props );
59                         $.effects.removeWrapper( el );
60                         done();
61                 }
62         });
65 })(jQuery);