79fe186c2e9854be2ec397509e863669bfb5b701
[myslice.git] / third-party / jquery-ui-1.10.2 / ui / jquery.ui.effect-transfer.js
1 /*!
2  * jQuery UI Effects Transfer 1.10.2
3  * http://jqueryui.com
4  *
5  * Copyright 2013 jQuery Foundation and other contributors
6  * Released under the MIT license.
7  * http://jquery.org/license
8  *
9  * http://api.jqueryui.com/transfer-effect/
10  *
11  * Depends:
12  *      jquery.ui.effect.js
13  */
14 (function( $, undefined ) {
15
16 $.effects.effect.transfer = function( o, done ) {
17         var elem = $( this ),
18                 target = $( o.to ),
19                 targetFixed = target.css( "position" ) === "fixed",
20                 body = $("body"),
21                 fixTop = targetFixed ? body.scrollTop() : 0,
22                 fixLeft = targetFixed ? body.scrollLeft() : 0,
23                 endPosition = target.offset(),
24                 animation = {
25                         top: endPosition.top - fixTop ,
26                         left: endPosition.left - fixLeft ,
27                         height: target.innerHeight(),
28                         width: target.innerWidth()
29                 },
30                 startPosition = elem.offset(),
31                 transfer = $( "<div class='ui-effects-transfer'></div>" )
32                         .appendTo( document.body )
33                         .addClass( o.className )
34                         .css({
35                                 top: startPosition.top - fixTop ,
36                                 left: startPosition.left - fixLeft ,
37                                 height: elem.innerHeight(),
38                                 width: elem.innerWidth(),
39                                 position: targetFixed ? "fixed" : "absolute"
40                         })
41                         .animate( animation, o.duration, o.easing, function() {
42                                 transfer.remove();
43                                 done();
44                         });
45 };
46
47 })(jQuery);