2 * Interface Elements for jQuery
\r
5 * http://interface.eyecon.ro
\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
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
20 * @cat Plugins/Interface
\r
21 * @author Stefan Petre
\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
29 var e = new jQuery.fx.Shake(this, times, callback);
\r
33 jQuery.fx.Shake = function (e, times, callback)
\r
38 z.times = parseInt(times)||3;
\r
39 z.callback = callback;
\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
46 if (z.oldStyle.position != 'relative' && z.oldStyle.position != 'absolute') {
\r
47 z.el.css('position', 'relative');
\r
50 z.shake = function ()
\r
54 z.e = new jQuery.fx(
\r
58 complete : function ()
\r
60 z.e = new jQuery.fx(
\r
64 complete : function ()
\r
66 z.e = new jQuery.fx(
\r
70 complete: function(){
\r
71 if (z.cnt <= z.times)
\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
84 z.e.custom (z.oldStyle.left-20, z.oldStyle.left);
\r
89 z.e.custom (z.oldStyle.left+20, z.oldStyle.left-20);
\r
94 z.e.custom (z.oldStyle.left, z.oldStyle.left+20);
\r