/*! * jQuery UI Effects Blind - 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/blind-effect/ */ define([ 'jquery', 'jquery-ui-modules/effect' ], function ($, undefined) { var rvertical = /up|down|vertical/, rpositivemotion = /up|left|vertical|horizontal/; $.effects.effect.blind = function (o, done) { // Create element var el = $(this), props = ["position", "top", "bottom", "left", "right", "height", "width"], mode = $.effects.setMode(el, o.mode || "hide"), direction = o.direction || "up", vertical = rvertical.test(direction), ref = vertical ? "height" : "width", ref2 = vertical ? "top" : "left", motion = rpositivemotion.test(direction), animation = {}, show = mode === "show", wrapper, distance, margin; // if already wrapped, the wrapper's properties are my property. #6245 if (el.parent().is(".ui-effects-wrapper")) { $.effects.save(el.parent(), props); } else { $.effects.save(el, props); } el.show(); wrapper = $.effects.createWrapper(el).css({ overflow: "hidden" }); distance = wrapper[ref](); margin = parseFloat(wrapper.css(ref2)) || 0; animation[ref] = show ? distance : 0; if (!motion) { el .css(vertical ? "bottom" : "right", 0) .css(vertical ? "top" : "left", "auto") .css({position: "absolute"}); animation[ref2] = show ? margin : distance + margin; } // start at 0 if we are showing if (show) { wrapper.css(ref, 0); if (!motion) { wrapper.css(ref2, margin + distance); } } // Animate wrapper.animate(animation, { duration: o.duration, easing: o.easing, queue: false, complete: function () { if (mode === "hide") { el.hide(); } $.effects.restore(el, props); $.effects.removeWrapper(el); done(); } }); }; });