PluginProbe
RSVP and Event Management / 1.3.0
RSVP and Event Management v1.3.0
trunk 0.5.0 0.6.0 0.7.0 0.8.0 0.9.0 0.9.5 1.0.0 1.1.0 1.2.0 1.2.1 1.3.0 1.3.1 1.3.2 1.5.0 1.6.0 1.6.1 1.6.2 1.6.5 1.7.0 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 All 136 releases
rsvp / jquery-ui-1.7.2.custom / development-bundle / ui / effects.bounce.js

effects.bounce.js in RSVP and Event Management 1.3.0, at jquery-ui-1.7.2.custom/development-bundle/ui/effects.bounce.js

79 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*
2 * jQuery UI Effects Bounce 1.7.2
3 *
4 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
5 * Dual licensed under the MIT (MIT-LICENSE.txt)
6 * and GPL (GPL-LICENSE.txt) licenses.
7 *
8 * http://docs.jquery.com/UI/Effects/Bounce
9 *
10 * Depends:
11 * effects.core.js
12 */
13 (function($) {
14
15 $.effects.bounce = function(o) {
16
17 return this.queue(function() {
18
19 // Create element
20 var el = $(this), props = ['position','top','left'];
21
22 // Set options
23 var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
24 var direction = o.options.direction || 'up'; // Default direction
25 var distance = o.options.distance || 20; // Default distance
26 var times = o.options.times || 5; // Default # of times
27 var speed = o.duration || 250; // Default speed per bounce
28 if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE
29
30 // Adjust
31 $.effects.save(el, props); el.show(); // Save & Show
32 $.effects.createWrapper(el); // Create Wrapper
33 var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
34 var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
35 var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 3 : el.outerWidth({margin:true}) / 3);
36 if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
37 if (mode == 'hide') distance = distance / (times * 2);
38 if (mode != 'hide') times--;
39
40 // Animate
41 if (mode == 'show') { // Show Bounce
42 var animation = {opacity: 1};
43 animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
44 el.animate(animation, speed / 2, o.options.easing);
45 distance = distance / 2;
46 times--;
47 };
48 for (var i = 0; i < times; i++) { // Bounces
49 var animation1 = {}, animation2 = {};
50 animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
51 animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
52 el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing);
53 distance = (mode == 'hide') ? distance * 2 : distance / 2;
54 };
55 if (mode == 'hide') { // Last Bounce
56 var animation = {opacity: 0};
57 animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
58 el.animate(animation, speed / 2, o.options.easing, function(){
59 el.hide(); // Hide
60 $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
61 if(o.callback) o.callback.apply(this, arguments); // Callback
62 });
63 } else {
64 var animation1 = {}, animation2 = {};
65 animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
66 animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
67 el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){
68 $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
69 if(o.callback) o.callback.apply(this, arguments); // Callback
70 });
71 };
72 el.queue('fx', function() { el.dequeue(); });
73 el.dequeue();
74 });
75
76 };
77
78 })(jQuery);
79