Mercurial > hg > isophonics-drupal-site
comparison libraries/jquery.pause/jquery.pause.js @ 5:c69a71b4f40f
Add slideshow module
author | Chris Cannam |
---|---|
date | Thu, 07 Dec 2017 14:46:23 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
4:8948ab6c87d2 | 5:c69a71b4f40f |
---|---|
1 /*! | |
2 * Pause jQuery plugin v0.1 | |
3 * | |
4 * Copyright 2010 by Tobia Conforto <tobia.conforto@gmail.com> | |
5 * | |
6 * Based on Pause-resume-animation jQuery plugin by Joe Weitzel | |
7 * | |
8 * This program is free software; you can redistribute it and/or modify it | |
9 * under the terms of the GNU General Public License as published by the Free | |
10 * Software Foundation; either version 2 of the License, or(at your option) | |
11 * any later version. | |
12 * | |
13 * This program is distributed in the hope that it will be useful, but WITHOUT | |
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
15 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
16 * more details. | |
17 * | |
18 * You should have received a copy of the GNU General Public License along with | |
19 * this program; if not, write to the Free Software Foundation, Inc., 51 | |
20 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
21 */ | |
22 /* Changelog: | |
23 * | |
24 * 0.1 2010-06-13 Initial release | |
25 */ | |
26 (function() { | |
27 var $ = jQuery, | |
28 pauseId = 'jQuery.pause', | |
29 uuid = 1, | |
30 oldAnimate = $.fn.animate, | |
31 anims = {}; | |
32 | |
33 function now() { return new Date().getTime(); } | |
34 | |
35 $.fn.animate = function(prop, speed, easing, callback) { | |
36 var optall = $.speed(speed, easing, callback); | |
37 optall.complete = optall.old; // unwrap callback | |
38 return this.each(function() { | |
39 // check pauseId | |
40 if (! this[pauseId]) | |
41 this[pauseId] = uuid++; | |
42 // start animation | |
43 var opt = $.extend({}, optall); | |
44 oldAnimate.apply($(this), [prop, $.extend({}, opt)]); | |
45 // store data | |
46 anims[this[pauseId]] = { | |
47 run: true, | |
48 prop: prop, | |
49 opt: opt, | |
50 start: now(), | |
51 done: 0 | |
52 }; | |
53 }); | |
54 }; | |
55 | |
56 $.fn.pause = function() { | |
57 return this.each(function() { | |
58 // check pauseId | |
59 if (! this[pauseId]) | |
60 this[pauseId] = uuid++; | |
61 // fetch data | |
62 var data = anims[this[pauseId]]; | |
63 if (data && data.run) { | |
64 data.done += now() - data.start; | |
65 if (data.done > data.opt.duration) { | |
66 // remove stale entry | |
67 delete anims[this[pauseId]]; | |
68 } else { | |
69 // pause animation | |
70 $(this).stop(); | |
71 data.run = false; | |
72 } | |
73 } | |
74 }); | |
75 }; | |
76 | |
77 $.fn.resume = function() { | |
78 return this.each(function() { | |
79 // check pauseId | |
80 if (! this[pauseId]) | |
81 this[pauseId] = uuid++; | |
82 // fetch data | |
83 var data = anims[this[pauseId]]; | |
84 if (data && ! data.run) { | |
85 // resume animation | |
86 data.opt.duration -= data.done; | |
87 data.done = 0; | |
88 data.run = true; | |
89 data.start = now(); | |
90 oldAnimate.apply($(this), [data.prop, $.extend({}, data.opt)]); | |
91 } | |
92 }); | |
93 }; | |
94 })(); |