template.js.base.jquery.ui.effect-slide.js Maven / Gradle / Ivy
/*!
* jQuery UI Effects Slide 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/slide-effect/
*
* Depends:
* jquery.ui.effect.js
*/
(function ($, undefined) {
$.effects.effect.slide = function (o, done) {
// Create element
var el = $(this),
props = [ "position", "top", "bottom", "left", "right", "width", "height" ],
mode = $.effects.setMode(el, o.mode || "show"),
show = mode === "show",
direction = o.direction || "left",
ref = (direction === "up" || direction === "down") ? "top" : "left",
positiveMotion = (direction === "up" || direction === "left"),
distance,
animation = {};
// Adjust
$.effects.save(el, props);
el.show();
distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ](true);
$.effects.createWrapper(el).css({
overflow: "hidden"
});
if (show) {
el.css(ref, positiveMotion ? (isNaN(distance) ? "-" + distance : -distance) : distance);
}
// Animation
animation[ ref ] = ( show ?
( positiveMotion ? "+=" : "-=") :
( positiveMotion ? "-=" : "+=")) +
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);