Projet

Général

Profil

Paste
Télécharger (1,66 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / jquery_update / replace / ui / ui / jquery.ui.effect-fold.js @ 503b3f7b

1
/*!
2
 * jQuery UI Effects Fold 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/fold-effect/
10
 *
11
 * Depends:
12
 *        jquery.ui.effect.js
13
 */
14
(function( $, undefined ) {
15

    
16
$.effects.effect.fold = function( o, done ) {
17

    
18
        // Create element
19
        var el = $( this ),
20
                props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
21
                mode = $.effects.setMode( el, o.mode || "hide" ),
22
                show = mode === "show",
23
                hide = mode === "hide",
24
                size = o.size || 15,
25
                percent = /([0-9]+)%/.exec( size ),
26
                horizFirst = !!o.horizFirst,
27
                widthFirst = show !== horizFirst,
28
                ref = widthFirst ? [ "width", "height" ] : [ "height", "width" ],
29
                duration = o.duration / 2,
30
                wrapper, distance,
31
                animation1 = {},
32
                animation2 = {};
33

    
34
        $.effects.save( el, props );
35
        el.show();
36

    
37
        // Create Wrapper
38
        wrapper = $.effects.createWrapper( el ).css({
39
                overflow: "hidden"
40
        });
41
        distance = widthFirst ?
42
                [ wrapper.width(), wrapper.height() ] :
43
                [ wrapper.height(), wrapper.width() ];
44

    
45
        if ( percent ) {
46
                size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ];
47
        }
48
        if ( show ) {
49
                wrapper.css( horizFirst ? {
50
                        height: 0,
51
                        width: size
52
                } : {
53
                        height: size,
54
                        width: 0
55
                });
56
        }
57

    
58
        // Animation
59
        animation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size;
60
        animation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0;
61

    
62
        // Animate
63
        wrapper
64
                .animate( animation1, duration, o.easing )
65
                .animate( animation2, duration, o.easing, function() {
66
                        if ( hide ) {
67
                                el.hide();
68
                        }
69
                        $.effects.restore( el, props );
70
                        $.effects.removeWrapper( el );
71
                        done();
72
                });
73

    
74
};
75

    
76
})(jQuery);