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