|
1 | 1 | /*! |
2 | | - * jQuery UI Effects Clip 1.13.2 |
| 2 | + * jQuery UI Effects Drop 1.13.2 |
3 | 3 | * http://jqueryui.com |
4 | 4 | * |
5 | 5 | * Copyright jQuery Foundation and other contributors |
6 | 6 | * Released under the MIT license. |
7 | 7 | * http://jquery.org/license |
8 | 8 | */ |
9 | 9 |
|
10 | | -//>>label: Clip Effect |
| 10 | +//>>label: Drop Effect |
11 | 11 | //>>group: Effects |
12 | | -//>>description: Clips the element on and off like an old TV. |
13 | | -//>>docs: http://api.jqueryui.com/clip-effect/ |
| 12 | +//>>description: Moves an element in one direction and hides it at the same time. |
| 13 | +//>>docs: http://api.jqueryui.com/drop-effect/ |
14 | 14 | //>>demos: http://jqueryui.com/effect/ |
15 | 15 |
|
16 | | -( function( factory ) { |
17 | | - "use strict"; |
| 16 | +(function (factory) { |
| 17 | + 'use strict'; |
18 | 18 |
|
19 | | - if ( typeof define === "function" && define.amd ) { |
| 19 | + if (typeof define === 'function' && define.amd) { |
20 | 20 |
|
21 | 21 | // AMD. Register as an anonymous module. |
22 | | - define( [ |
23 | | - "jquery", |
24 | | - "../version", |
25 | | - "../effect" |
26 | | - ], factory ); |
| 22 | + define([ |
| 23 | + 'jquery', |
| 24 | + '../version', |
| 25 | + '../effect' |
| 26 | + ], factory); |
27 | 27 | } else { |
28 | 28 |
|
29 | 29 | // Browser globals |
30 | | - factory( jQuery ); |
| 30 | + factory(jQuery); |
31 | 31 | } |
32 | | -} )( function( $ ) { |
33 | | - "use strict"; |
| 32 | +})(function ($) { |
| 33 | + 'use strict'; |
34 | 34 |
|
35 | | - return $.effects.define( "clip", "hide", function( options, done ) { |
36 | | - var start, |
37 | | - animate = {}, |
38 | | - element = $( this ), |
39 | | - direction = options.direction || "vertical", |
40 | | - both = direction === "both", |
41 | | - horizontal = both || direction === "horizontal", |
42 | | - vertical = both || direction === "vertical"; |
| 35 | + return $.effects.define('drop', 'hide', function (options, done) { |
43 | 36 |
|
44 | | - start = element.cssClip(); |
45 | | - animate.clip = { |
46 | | - top: vertical ? ( start.bottom - start.top ) / 2 : start.top, |
47 | | - right: horizontal ? ( start.right - start.left ) / 2 : start.right, |
48 | | - bottom: vertical ? ( start.bottom - start.top ) / 2 : start.bottom, |
49 | | - left: horizontal ? ( start.right - start.left ) / 2 : start.left |
50 | | - }; |
| 37 | + var distance, |
| 38 | + element = $(this), |
| 39 | + mode = options.mode, |
| 40 | + show = mode === 'show', |
| 41 | + direction = options.direction || 'left', |
| 42 | + ref = direction === 'up' || direction === 'down' ? 'top' : 'left', |
| 43 | + motion = direction === 'up' || direction === 'left' ? '-=' : '+=', |
| 44 | + oppositeMotion = motion === '+=' ? '-=' : '+=', |
| 45 | + animation = { |
| 46 | + opacity: 0 |
| 47 | + }; |
51 | 48 |
|
52 | | - $.effects.createPlaceholder( element ); |
| 49 | + $.effects.createPlaceholder(element); |
53 | 50 |
|
54 | | - if ( options.mode === "show" ) { |
55 | | - element.cssClip( animate.clip ); |
56 | | - animate.clip = start; |
| 51 | + distance = options.distance || |
| 52 | + element[ ref === 'top' ? 'outerHeight' : 'outerWidth' ](true) / 2; |
| 53 | + |
| 54 | + animation[ ref ] = motion + distance; |
| 55 | + |
| 56 | + if (show) { |
| 57 | + element.css(animation); |
| 58 | + |
| 59 | + animation[ ref ] = oppositeMotion + distance; |
| 60 | + animation.opacity = 1; |
57 | 61 | } |
58 | 62 |
|
59 | | - element.animate( animate, { |
| 63 | + // Animate |
| 64 | + element.animate(animation, { |
60 | 65 | queue: false, |
61 | 66 | duration: options.duration, |
62 | 67 | easing: options.easing, |
63 | 68 | complete: done |
64 | | - } ); |
65 | | - |
66 | | - } ); |
| 69 | + }); |
| 70 | + }); |
67 | 71 |
|
68 | | -} ); |
| 72 | +}); |
0 commit comments