mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
37dcc3e21d
For instance, this is useful for the jquery-ui-rails gem, which does not use jQuery UI's own minification, but relies on Rails to minify the files where necessary. Rails in turn uses UglifyJS for JS and YUI for CSS, both of which respect the /*! ... */ convention.
82 lines
1.9 KiB
JavaScript
82 lines
1.9 KiB
JavaScript
/*!
|
|
* jQuery UI Effects Blind @VERSION
|
|
*
|
|
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
* http://jquery.org/license
|
|
*
|
|
* http://docs.jquery.com/UI/Effects/Blind
|
|
*
|
|
* Depends:
|
|
* jquery.effects.core.js
|
|
*/
|
|
(function( $, undefined ) {
|
|
|
|
var rvertical = /up|down|vertical/,
|
|
rpositivemotion = /up|left|vertical|horizontal/;
|
|
|
|
$.effects.effect.blind = function( o, done ) {
|
|
// Create element
|
|
var el = $( this ),
|
|
props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
|
|
mode = $.effects.setMode( el, o.mode || "hide" ),
|
|
direction = o.direction || "up",
|
|
vertical = rvertical.test( direction ),
|
|
ref = vertical ? "height" : "width",
|
|
ref2 = vertical ? "top" : "left",
|
|
motion = rpositivemotion.test( direction ),
|
|
animation = {},
|
|
show = mode === "show",
|
|
wrapper, distance, margin;
|
|
|
|
// if already wrapped, the wrapper's properties are my property. #6245
|
|
if ( el.parent().is( ".ui-effects-wrapper" ) ) {
|
|
$.effects.save( el.parent(), props );
|
|
} else {
|
|
$.effects.save( el, props );
|
|
}
|
|
el.show();
|
|
wrapper = $.effects.createWrapper( el ).css({
|
|
overflow: "hidden"
|
|
});
|
|
|
|
distance = wrapper[ ref ]();
|
|
margin = parseFloat( wrapper.css( ref2 ) );
|
|
|
|
animation[ ref ] = show ? distance : 0;
|
|
if ( !motion ) {
|
|
el
|
|
.css( vertical ? "bottom" : "right", 0 )
|
|
.css( vertical ? "top" : "left", "auto" )
|
|
.css({ position: "absolute" });
|
|
|
|
animation[ ref2 ] = show ? margin : distance + margin;
|
|
}
|
|
|
|
// start at 0 if we are showing
|
|
if ( show ) {
|
|
wrapper.css( ref, 0 );
|
|
if ( ! motion ) {
|
|
wrapper.css( ref2, margin + distance );
|
|
}
|
|
}
|
|
|
|
// Animate
|
|
wrapper.animate( animation, {
|
|
duration: o.duration,
|
|
easing: o.easing,
|
|
queue: false,
|
|
complete: function() {
|
|
if ( mode === "hide" ) {
|
|
el.hide();
|
|
}
|
|
$.effects.restore( el, props );
|
|
$.effects.removeWrapper( el );
|
|
done();
|
|
}
|
|
});
|
|
|
|
};
|
|
|
|
})(jQuery);
|