diff --git a/ui/jquery.effects.clip.js b/ui/jquery.effects.clip.js index 14b358dfa..dbf0d36c9 100644 --- a/ui/jquery.effects.clip.js +++ b/ui/jquery.effects.clip.js @@ -17,47 +17,52 @@ $.effects.effect.clip = function( o ) { return this.queue( function() { // Create element - var el = $( this ), - props = ['position','top','bottom','left','right','height','width'], - mode = $.effects.setMode( el, o.mode || 'hide' ), - direction = o.direction || 'vertical', - ref = { - size: (direction == 'vertical') ? 'height' : 'width', - position: (direction == 'vertical') ? 'top' : 'left' - }, + var el = $( this ), + props = [ "position", "top", "bottom", "left", "right", "height", "width" ], + mode = $.effects.setMode( el, o.mode || "hide" ), + show = mode === "show", + direction = o.direction || "vertical", + vert = direction === "vertical", + size = vert ? "height" : "width", + position = vert ? "top" : "left", animation = {}, wrapper, animate, distance; // Save & Show - $.effects.save( el, props ); el.show(); + $.effects.save( el, props ); + el.show(); // Create Wrapper - wrapper = $.effects.createWrapper( el ).css({ - overflow: 'hidden' + wrapper = $.effects.createWrapper( el ).css({ + overflow: "hidden" }); - animate = ( el[0].tagName == 'IMG' ) ? wrapper : el; - distance = animate[ ref.size ](); + animate = ( el[0].tagName === "IMG" ) ? wrapper : el; + distance = animate[ size ](); // Shift - if ( mode == 'show' ) { - animate.css( ref.size, 0 ); - animate.css( ref.position, distance / 2 ); + if ( show ) { + animate.css( size, 0 ); + animate.css( position, distance / 2 ); } // Create Animation Object: - animation[ ref.size ] = mode == 'show' ? distance : 0; - animation[ ref.position ] = mode == 'show' ? 0 : distance / 2; + animation[ size ] = show ? distance : 0; + animation[ position ] = show ? 0 : distance / 2; // Animate - animate.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, + animate.animate( animation, { + queue: false, + duration: o.duration, + easing: o.easing, complete: function() { - mode == 'hide' && el.hide(); - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - $.isFunction( o.complete ) && o.complete.apply( el[ 0 ], arguments ); + if ( !show ) { + el.hide(); + } + $.effects.restore( el, props ); + $.effects.removeWrapper( el ); + if ( $.isFunction( o.complete ) ) { + o.complete.apply( el[ 0 ], arguments ); + } el.dequeue(); } });