74 lines
1.5 KiB
JavaScript
74 lines
1.5 KiB
JavaScript
|
/*!
|
||
|
* jQuery UI Effects Pulsate 1.11.4
|
||
|
* http://jqueryui.com
|
||
|
*
|
||
|
* Copyright jQuery Foundation and other contributors
|
||
|
* Released under the MIT license.
|
||
|
* http://jquery.org/license
|
||
|
*
|
||
|
* http://api.jqueryui.com/pulsate-effect/
|
||
|
*/
|
||
|
(function( factory ) {
|
||
|
if ( typeof define === "function" && define.amd ) {
|
||
|
|
||
|
// AMD. Register as an anonymous module.
|
||
|
define([
|
||
|
"jquery",
|
||
|
"./effect"
|
||
|
], factory );
|
||
|
} else {
|
||
|
|
||
|
// Browser globals
|
||
|
factory( jQuery );
|
||
|
}
|
||
|
}(function( $ ) {
|
||
|
|
||
|
return $.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();
|
||
|
};
|
||
|
|
||
|
}));
|