template.js.base.jquery.ui.effect-pulsate.js Maven / Gradle / Ivy
/*!
* jQuery UI Effects Pulsate 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/pulsate-effect/
*
* Depends:
* jquery.ui.effect.js
*/
(function ($, undefined) {
$.effects.effect.pulsate = function (o, done) {
var elem = $(this),
mode = $.effects.setMode(elem, o.mode || "show"),
show = mode === "show",
hide = mode === "hide",
showhide = ( show || mode === "hide" ),
// showing or hiding leaves of the "last" animation
anims = ( ( o.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ),
duration = o.duration / anims,
animateTo = 0,
queue = elem.queue(),
queuelen = queue.length,
i;
if (show || !elem.is(":visible")) {
elem.css("opacity", 0).show();
animateTo = 1;
}
// anims - 1 opacity "toggles"
for (i = 1; i < anims; i++) {
elem.animate({
opacity: animateTo
}, duration, o.easing);
animateTo = 1 - animateTo;
}
elem.animate({
opacity: animateTo
}, duration, o.easing);
elem.queue(function () {
if (hide) {
elem.hide();
}
done();
});
// We just queued up "anims" animations, we need to put them next in the queue
if (queuelen > 1) {
queue.splice.apply(queue,
[ 1, 0 ].concat(queue.splice(queuelen, anims + 1)));
}
elem.dequeue();
};
})(jQuery);