template.js.base.jquery.ui.effect-drop.js Maven / Gradle / Ivy
/*!
* jQuery UI Effects Drop 1.10.4
* http://jqueryui.com
*
* Copyright 2014 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/drop-effect/
*
* Depends:
* jquery.ui.effect.js
*/
(function ($, undefined) {
$.effects.effect.drop = function (o, done) {
var el = $(this),
props = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ],
mode = $.effects.setMode(el, o.mode || "hide"),
show = mode === "show",
direction = o.direction || "left",
ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
motion = ( direction === "up" || direction === "left" ) ? "pos" : "neg",
animation = {
opacity: show ? 1 : 0
},
distance;
// Adjust
$.effects.save(el, props);
el.show();
$.effects.createWrapper(el);
distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ](true) / 2;
if (show) {
el
.css("opacity", 0)
.css(ref, motion === "pos" ? -distance : distance);
}
// Animation
animation[ ref ] = ( show ?
( motion === "pos" ? "+=" : "-=" ) :
( motion === "pos" ? "-=" : "+=" ) ) +
distance;
// Animate
el.animate(animation, {
queue: false,
duration: o.duration,
easing: o.easing,
complete: function () {
if (mode === "hide") {
el.hide();
}
$.effects.restore(el, props);
$.effects.removeWrapper(el);
done();
}
});
};
})(jQuery);