| author | Samuel Huron <samuel.huron@centrepompidou.fr> |
| Fri, 18 Feb 2011 19:37:15 +0100 | |
| changeset 50 | a1636b31eb98 |
| permissions | -rw-r--r-- |
|
50
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
1 |
/** |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
2 |
* Interface Elements for jQuery |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
3 |
* FX - shake |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
4 |
* |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
5 |
* http://interface.eyecon.ro |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
6 |
* |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
7 |
* Copyright (c) 2006 Stefan Petre |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
8 |
* Dual licensed under the MIT (MIT-LICENSE.txt) |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
9 |
* and GPL (GPL-LICENSE.txt) licenses. |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
10 |
* |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
11 |
* |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
12 |
*/ |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
13 |
|
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
14 |
/** |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
15 |
* @name Shake |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
16 |
* @description makes the element to shake |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
17 |
* @param Integer times how many tomes to shake the element |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
18 |
* @param Function callback (optional) A function to be executed whenever the animation completes. |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
19 |
* @type jQuery |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
20 |
* @cat Plugins/Interface |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
21 |
* @author Stefan Petre |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
22 |
*/ |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
23 |
jQuery.fn.Shake = function (times, callback) { |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
24 |
return this.queue('interfaceFX',function(){ |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
25 |
if (!jQuery.fxCheckTag(this)) { |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
26 |
jQuery.dequeue(this, 'interfaceFX'); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
27 |
return false; |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
28 |
} |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
29 |
var e = new jQuery.fx.Shake(this, times, callback); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
30 |
e.shake(); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
31 |
}); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
32 |
}; |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
33 |
jQuery.fx.Shake = function (e, times, callback) |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
34 |
{ |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
35 |
var z = this; |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
36 |
z.el = jQuery(e); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
37 |
z.el.show(); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
38 |
z.times = parseInt(times)||3; |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
39 |
z.callback = callback; |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
40 |
z.cnt = 1; |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
41 |
z.oldStyle = {}; |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
42 |
z.oldStyle.position = z.el.css('position'); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
43 |
z.oldStyle.top = parseInt(z.el.css('top'))||0; |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
44 |
z.oldStyle.left = parseInt(z.el.css('left'))||0; |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
45 |
|
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
46 |
if (z.oldStyle.position != 'relative' && z.oldStyle.position != 'absolute') { |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
47 |
z.el.css('position', 'relative'); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
48 |
} |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
49 |
|
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
50 |
z.shake = function () |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
51 |
{ |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
52 |
z.cnt ++; |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
53 |
|
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
54 |
z.e = new jQuery.fx( |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
55 |
z.el.get(0), |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
56 |
{ |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
57 |
duration: 60, |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
58 |
complete : function () |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
59 |
{ |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
60 |
z.e = new jQuery.fx( |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
61 |
z.el.get(0), |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
62 |
{ |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
63 |
duration: 60, |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
64 |
complete : function () |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
65 |
{ |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
66 |
z.e = new jQuery.fx( |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
67 |
e, |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
68 |
{ |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
69 |
duration: 60, |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
70 |
complete: function(){ |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
71 |
if (z.cnt <= z.times) |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
72 |
z.shake(); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
73 |
else { |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
74 |
z.el.css('position', z.oldStyle.position).css('top', z.oldStyle.top + 'px').css('left', z.oldStyle.left + 'px'); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
75 |
jQuery.dequeue(z.el.get(0), 'interfaceFX'); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
76 |
if (z.callback && z.callback.constructor == Function) { |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
77 |
z.callback.apply(z.el.get(0)); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
78 |
} |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
79 |
} |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
80 |
} |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
81 |
}, |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
82 |
'left' |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
83 |
); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
84 |
z.e.custom (z.oldStyle.left-20, z.oldStyle.left); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
85 |
} |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
86 |
}, |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
87 |
'left' |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
88 |
); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
89 |
z.e.custom (z.oldStyle.left+20, z.oldStyle.left-20); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
90 |
} |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
91 |
}, |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
92 |
'left' |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
93 |
); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
94 |
z.e.custom (z.oldStyle.left, z.oldStyle.left+20); |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
95 |
}; |
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
96 |
|
|
a1636b31eb98
polemical timeline
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
97 |
}; |