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