Files
2026-09-15 10:35:56 +08:00

73 lines
1.8 KiB
JavaScript

/*!
* jQuery UI Effects Drop 1.13.2
* http://jqueryui.com
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*/
//>>label: Drop Effect
//>>group: Effects
//>>description: Moves an element in one direction and hides it at the same time.
//>>docs: http://api.jqueryui.com/drop-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('drop', 'hide', function (options, done) {
var distance,
element = $(this),
mode = options.mode,
show = mode === 'show',
direction = options.direction || 'left',
ref = direction === 'up' || direction === 'down' ? 'top' : 'left',
motion = direction === 'up' || direction === 'left' ? '-=' : '+=',
oppositeMotion = motion === '+=' ? '-=' : '+=',
animation = {
opacity: 0
};
$.effects.createPlaceholder(element);
distance = options.distance ||
element[ ref === 'top' ? 'outerHeight' : 'outerWidth' ](true) / 2;
animation[ ref ] = motion + distance;
if (show) {
element.css(animation);
animation[ ref ] = oppositeMotion + distance;
animation.opacity = 1;
}
// Animate
element.animate(animation, {
queue: false,
duration: options.duration,
easing: options.easing,
complete: done
});
});
});