mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
70dae67b73
Fixes #15393 Closes gh-1958
69 lines
1.5 KiB
JavaScript
69 lines
1.5 KiB
JavaScript
/*!
|
|
* jQuery UI Effects Clip @VERSION
|
|
* http://jqueryui.com
|
|
*
|
|
* Copyright jQuery Foundation and other contributors
|
|
* Released under the MIT license.
|
|
* http://jquery.org/license
|
|
*/
|
|
|
|
//>>label: Clip Effect
|
|
//>>group: Effects
|
|
//>>description: Clips the element on and off like an old TV.
|
|
//>>docs: http://api.jqueryui.com/clip-effect/
|
|
//>>demos: http://jqueryui.com/effect/
|
|
|
|
( function( factory ) {
|
|
"use strict";
|
|
|
|
if ( typeof define === "function" && define.amd ) {
|
|
|
|
// AMD. Register as an anonymous module.
|
|
define( [
|
|
"jquery",
|
|
"../version",
|
|
"../effect"
|
|
], factory );
|
|
} else {
|
|
|
|
// Browser globals
|
|
factory( jQuery );
|
|
}
|
|
} )( function( $ ) {
|
|
"use strict";
|
|
|
|
return $.effects.define( "clip", "hide", function( options, done ) {
|
|
var start,
|
|
animate = {},
|
|
element = $( this ),
|
|
direction = options.direction || "vertical",
|
|
both = direction === "both",
|
|
horizontal = both || direction === "horizontal",
|
|
vertical = both || direction === "vertical";
|
|
|
|
start = element.cssClip();
|
|
animate.clip = {
|
|
top: vertical ? ( start.bottom - start.top ) / 2 : start.top,
|
|
right: horizontal ? ( start.right - start.left ) / 2 : start.right,
|
|
bottom: vertical ? ( start.bottom - start.top ) / 2 : start.bottom,
|
|
left: horizontal ? ( start.right - start.left ) / 2 : start.left
|
|
};
|
|
|
|
$.effects.createPlaceholder( element );
|
|
|
|
if ( options.mode === "show" ) {
|
|
element.cssClip( animate.clip );
|
|
animate.clip = start;
|
|
}
|
|
|
|
element.animate( animate, {
|
|
queue: false,
|
|
duration: options.duration,
|
|
easing: options.easing,
|
|
complete: done
|
|
} );
|
|
|
|
} );
|
|
|
|
} );
|