aboutsummaryrefslogtreecommitdiffstats
path: root/ui/jquery.effects.blind.js
blob: 0bf5b0b719931c650cf8c7ef69fb44d9429349b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * jQuery UI Effects Blind @VERSION
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Effects/Blind
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function( $, undefined ) {

$.effects.blind = function(o) {

	return this.queue(function() {
		// Create element
		var el = $(this), 
			props = ['position','top','bottom','left','right'],
			mode = $.effects.setMode( el, o.mode || 'hide' ),
			direction = o.direction || 'vertical',
			ref = (direction == 'vertical') ? 'height' : 'width',
			animation = {},
			wrapper, distance;

		// Adjust
		$.effects.save(el, props); el.show(); // Save & Show
		
		wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper

		animation[ref] = ( mode == 'show' ? wrapper[ ref ]() : 0 );
		(mode == 'show' && wrapper.css(ref, 0)); // start at 0 if we are showing

		// Animate
		wrapper.animate( animation, o.duration, o.easing, function() {
			(mode == 'hide' && el.hide()); // Hide
			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
			(o.complete && o.complete.apply(el[0], arguments)); // Callback
			el.dequeue();
		});

	});

};

})(jQuery);