/*! * jQuery UI Effects Clip - v1.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/clip-effect/ */ define([ 'jquery', 'jquery-ui-modules/effect' ], function ($, undefined) { $.effects.effect.clip = function (o, done) { // Create element var el = $(this), props = ["position", "top", "bottom", "left", "right", "height", "width"], mode = $.effects.setMode(el, o.mode || "hide"), show = mode === "show", direction = o.direction || "vertical", vert = direction === "vertical", size = vert ? "height" : "width", position = vert ? "top" : "left", animation = {}, wrapper, animate, distance; // Save & Show $.effects.save(el, props); el.show(); // Create Wrapper wrapper = $.effects.createWrapper(el).css({ overflow: "hidden" }); animate = (el[0].tagName === "IMG") ? wrapper : el; distance = animate[size](); // Shift if (show) { animate.css(size, 0); animate.css(position, distance / 2); } // Create Animation Object: animation[size] = show ? distance : 0; animation[position] = show ? 0 : distance / 2; // Animate animate.animate(animation, { queue: false, duration: o.duration, easing: o.easing, complete: function () { if (!show) { el.hide(); } $.effects.restore(el, props); $.effects.removeWrapper(el); done(); } }); }; });