1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
| /*!
| * 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);
|
|