File: /var/www/vhost/disk-apps/magento.bikenow.co/lib/web/jquery/ui-modules/effect-shake.js
/*!
* jQuery UI Effects Shake - 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/shake-effect/
*/
define([
'jquery',
'jquery-ui-modules/effect'
], function ($, undefined) {
$.effects.effect.shake = function (o, done) {
var el = $(this),
props = ["position", "top", "bottom", "left", "right", "height", "width"],
mode = $.effects.setMode(el, o.mode || "effect"),
direction = o.direction || "left",
distance = o.distance || 20,
times = o.times || 3,
anims = times * 2 + 1,
speed = Math.round(o.duration / anims),
ref = (direction === "up" || direction === "down") ? "top" : "left",
positiveMotion = (direction === "up" || direction === "left"),
animation = {},
animation1 = {},
animation2 = {},
i,
// we will need to re-assemble the queue to stack our animations in place
queue = el.queue(),
queuelen = queue.length;
$.effects.save(el, props);
el.show();
$.effects.createWrapper(el);
// Animation
animation[ref] = (positiveMotion ? "-=" : "+=") + distance;
animation1[ref] = (positiveMotion ? "+=" : "-=") + distance * 2;
animation2[ref] = (positiveMotion ? "-=" : "+=") + distance * 2;
// Animate
el.animate(animation, speed, o.easing);
// Shakes
for (i = 1; i < times; i++) {
el.animate(animation1, speed, o.easing).animate(animation2, speed, o.easing);
}
el
.animate(animation1, speed, o.easing)
.animate(animation, speed / 2, o.easing)
.queue(function () {
if (mode === "hide") {
el.hide();
}
$.effects.restore(el, props);
$.effects.removeWrapper(el);
done();
});
// inject all the animations we just queued to be first in line (after "inprogress")
if (queuelen > 1) {
queue.splice.apply(queue,
[1, 0].concat(queue.splice(queuelen, anims + 1)));
}
el.dequeue();
};
});