You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.7 KiB
76 lines
1.7 KiB
/*! |
|
* jQuery UI Effects Fold 1.10.3 |
|
* http://jqueryui.com |
|
* |
|
* Copyright 2013 jQuery Foundation and other contributors |
|
* Released under the MIT license. |
|
* http://jquery.org/license |
|
* |
|
* http://api.jqueryui.com/fold-effect/ |
|
* |
|
* Depends: |
|
* jquery.ui.effect.js |
|
*/ |
|
(function( $, undefined ) { |
|
|
|
$.effects.effect.fold = function( o, done ) { |
|
|
|
// Create element |
|
var el = $( this ), |
|
props = [ "position", "top", "bottom", "left", "right", "height", "width" ], |
|
mode = $.effects.setMode( el, o.mode || "hide" ), |
|
show = mode === "show", |
|
hide = mode === "hide", |
|
size = o.size || 15, |
|
percent = /([0-9]+)%/.exec( size ), |
|
horizFirst = !!o.horizFirst, |
|
widthFirst = show !== horizFirst, |
|
ref = widthFirst ? [ "width", "height" ] : [ "height", "width" ], |
|
duration = o.duration / 2, |
|
wrapper, distance, |
|
animation1 = {}, |
|
animation2 = {}; |
|
|
|
$.effects.save( el, props ); |
|
el.show(); |
|
|
|
// Create Wrapper |
|
wrapper = $.effects.createWrapper( el ).css({ |
|
overflow: "hidden" |
|
}); |
|
distance = widthFirst ? |
|
[ wrapper.width(), wrapper.height() ] : |
|
[ wrapper.height(), wrapper.width() ]; |
|
|
|
if ( percent ) { |
|
size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; |
|
} |
|
if ( show ) { |
|
wrapper.css( horizFirst ? { |
|
height: 0, |
|
width: size |
|
} : { |
|
height: size, |
|
width: 0 |
|
}); |
|
} |
|
|
|
// Animation |
|
animation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size; |
|
animation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0; |
|
|
|
// Animate |
|
wrapper |
|
.animate( animation1, duration, o.easing ) |
|
.animate( animation2, duration, o.easing, function() { |
|
if ( hide ) { |
|
el.hide(); |
|
} |
|
$.effects.restore( el, props ); |
|
$.effects.removeWrapper( el ); |
|
done(); |
|
}); |
|
|
|
}; |
|
|
|
})(jQuery);
|
|
|