Spaces:
Sleeping
Sleeping
/*! | |
* jQuery UI Effects Fold 1.13.3 | |
* https://jqueryui.com | |
* | |
* Copyright OpenJS Foundation and other contributors | |
* Released under the MIT license. | |
* https://jquery.org/license | |
*/ | |
//>>label: Fold Effect | |
//>>group: Effects | |
//>>description: Folds an element first horizontally and then vertically. | |
//>>docs: https://api.jqueryui.com/fold-effect/ | |
//>>demos: https://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( $ ) { | |
; | |
return $.effects.define( "fold", "hide", function( options, done ) { | |
// Create element | |
var element = $( this ), | |
mode = options.mode, | |
show = mode === "show", | |
hide = mode === "hide", | |
size = options.size || 15, | |
percent = /([0-9]+)%/.exec( size ), | |
horizFirst = !!options.horizFirst, | |
ref = horizFirst ? [ "right", "bottom" ] : [ "bottom", "right" ], | |
duration = options.duration / 2, | |
placeholder = $.effects.createPlaceholder( element ), | |
start = element.cssClip(), | |
animation1 = { clip: $.extend( {}, start ) }, | |
animation2 = { clip: $.extend( {}, start ) }, | |
distance = [ start[ ref[ 0 ] ], start[ ref[ 1 ] ] ], | |
queuelen = element.queue().length; | |
if ( percent ) { | |
size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; | |
} | |
animation1.clip[ ref[ 0 ] ] = size; | |
animation2.clip[ ref[ 0 ] ] = size; | |
animation2.clip[ ref[ 1 ] ] = 0; | |
if ( show ) { | |
element.cssClip( animation2.clip ); | |
if ( placeholder ) { | |
placeholder.css( $.effects.clipToBox( animation2 ) ); | |
} | |
animation2.clip = start; | |
} | |
// Animate | |
element | |
.queue( function( next ) { | |
if ( placeholder ) { | |
placeholder | |
.animate( $.effects.clipToBox( animation1 ), duration, options.easing ) | |
.animate( $.effects.clipToBox( animation2 ), duration, options.easing ); | |
} | |
next(); | |
} ) | |
.animate( animation1, duration, options.easing ) | |
.animate( animation2, duration, options.easing ) | |
.queue( done ); | |
$.effects.unshift( element, queuelen, 4 ); | |
} ); | |
} ); | |