/*! * jQuery UI Effects Size 1.13.3 * https://jqueryui.com * * Copyright OpenJS Foundation and other contributors * Released under the MIT license. * https://jquery.org/license */ //>>label: Size Effect //>>group: Effects //>>description: Resize an element to a specified width and height. //>>docs: https://api.jqueryui.com/size-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( $ ) { "use strict"; return $.effects.define( "size", function( options, done ) { // Create element var baseline, factor, temp, element = $( this ), // Copy for children cProps = [ "fontSize" ], vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], // Set options mode = options.mode, restore = mode !== "effect", scale = options.scale || "both", origin = options.origin || [ "middle", "center" ], position = element.css( "position" ), pos = element.position(), original = $.effects.scaledDimensions( element ), from = options.from || original, to = options.to || $.effects.scaledDimensions( element, 0 ); $.effects.createPlaceholder( element ); if ( mode === "show" ) { temp = from; from = to; to = temp; } // Set scaling factor factor = { from: { y: from.height / original.height, x: from.width / original.width }, to: { y: to.height / original.height, x: to.width / original.width } }; // Scale the css box if ( scale === "box" || scale === "both" ) { // Vertical props scaling if ( factor.from.y !== factor.to.y ) { from = $.effects.setTransition( element, vProps, factor.from.y, from ); to = $.effects.setTransition( element, vProps, factor.to.y, to ); } // Horizontal props scaling if ( factor.from.x !== factor.to.x ) { from = $.effects.setTransition( element, hProps, factor.from.x, from ); to = $.effects.setTransition( element, hProps, factor.to.x, to ); } } // Scale the content if ( scale === "content" || scale === "both" ) { // Vertical props scaling if ( factor.from.y !== factor.to.y ) { from = $.effects.setTransition( element, cProps, factor.from.y, from ); to = $.effects.setTransition( element, cProps, factor.to.y, to ); } } // Adjust the position properties based on the provided origin points if ( origin ) { baseline = $.effects.getBaseline( origin, original ); from.top = ( original.outerHeight - from.outerHeight ) * baseline.y + pos.top; from.left = ( original.outerWidth - from.outerWidth ) * baseline.x + pos.left; to.top = ( original.outerHeight - to.outerHeight ) * baseline.y + pos.top; to.left = ( original.outerWidth - to.outerWidth ) * baseline.x + pos.left; } delete from.outerHeight; delete from.outerWidth; element.css( from ); // Animate the children if desired if ( scale === "content" || scale === "both" ) { vProps = vProps.concat( [ "marginTop", "marginBottom" ] ).concat( cProps ); hProps = hProps.concat( [ "marginLeft", "marginRight" ] ); // Only animate children with width attributes specified // TODO: is this right? should we include anything with css width specified as well element.find( "*[width]" ).each( function() { var child = $( this ), childOriginal = $.effects.scaledDimensions( child ), childFrom = { height: childOriginal.height * factor.from.y, width: childOriginal.width * factor.from.x, outerHeight: childOriginal.outerHeight * factor.from.y, outerWidth: childOriginal.outerWidth * factor.from.x }, childTo = { height: childOriginal.height * factor.to.y, width: childOriginal.width * factor.to.x, outerHeight: childOriginal.height * factor.to.y, outerWidth: childOriginal.width * factor.to.x }; // Vertical props scaling if ( factor.from.y !== factor.to.y ) { childFrom = $.effects.setTransition( child, vProps, factor.from.y, childFrom ); childTo = $.effects.setTransition( child, vProps, factor.to.y, childTo ); } // Horizontal props scaling if ( factor.from.x !== factor.to.x ) { childFrom = $.effects.setTransition( child, hProps, factor.from.x, childFrom ); childTo = $.effects.setTransition( child, hProps, factor.to.x, childTo ); } if ( restore ) { $.effects.saveStyle( child ); } // Animate children child.css( childFrom ); child.animate( childTo, options.duration, options.easing, function() { // Restore children if ( restore ) { $.effects.restoreStyle( child ); } } ); } ); } // Animate element.animate( to, { queue: false, duration: options.duration, easing: options.easing, complete: function() { var offset = element.offset(); if ( to.opacity === 0 ) { element.css( "opacity", from.opacity ); } if ( !restore ) { element .css( "position", position === "static" ? "relative" : position ) .offset( offset ); // Need to save style here so that automatic style restoration // doesn't restore to the original styles from before the animation. $.effects.saveStyle( element ); } done(); } } ); } ); } );
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
accordion.js | File | 15.76 KB | 0644 |
|
accordion.min.js | File | 8.65 KB | 0644 |
|
autocomplete.js | File | 17.12 KB | 0644 |
|
autocomplete.min.js | File | 8.34 KB | 0644 |
|
button.js | File | 11.43 KB | 0644 |
|
button.min.js | File | 6.01 KB | 0644 |
|
checkboxradio.js | File | 7.41 KB | 0644 |
|
checkboxradio.min.js | File | 4.25 KB | 0644 |
|
controlgroup.js | File | 8.42 KB | 0644 |
|
controlgroup.min.js | File | 4.3 KB | 0644 |
|
core.js | File | 48.72 KB | 0644 |
|
core.min.js | File | 20.96 KB | 0644 |
|
datepicker.js | File | 80.59 KB | 0644 |
|
datepicker.min.js | File | 35.89 KB | 0644 |
|
dialog.js | File | 23.34 KB | 0644 |
|
dialog.min.js | File | 12.79 KB | 0644 |
|
draggable.js | File | 34.71 KB | 0644 |
|
draggable.min.js | File | 17.99 KB | 0644 |
|
droppable.js | File | 12.6 KB | 0644 |
|
droppable.min.js | File | 6.51 KB | 0644 |
|
effect-blind.js | File | 1.61 KB | 0644 |
|
effect-blind.min.js | File | 880 B | 0644 |
|
effect-bounce.js | File | 2.6 KB | 0644 |
|
effect-bounce.min.js | File | 991 B | 0644 |
|
effect-clip.js | File | 1.54 KB | 0644 |
|
effect-clip.min.js | File | 796 B | 0644 |
|
effect-drop.js | File | 1.56 KB | 0644 |
|
effect-drop.min.js | File | 753 B | 0644 |
|
effect-explode.js | File | 2.86 KB | 0644 |
|
effect-explode.min.js | File | 1.1 KB | 0644 |
|
effect-fade.js | File | 968 B | 0644 |
|
effect-fade.min.js | File | 525 B | 0644 |
|
effect-fold.js | File | 2.13 KB | 0644 |
|
effect-fold.min.js | File | 1020 B | 0644 |
|
effect-highlight.js | File | 1.21 KB | 0644 |
|
effect-highlight.min.js | File | 648 B | 0644 |
|
effect-puff.js | File | 995 B | 0644 |
|
effect-puff.min.js | File | 510 B | 0644 |
|
effect-pulsate.js | File | 1.53 KB | 0644 |
|
effect-pulsate.min.js | File | 688 B | 0644 |
|
effect-scale.js | File | 1.34 KB | 0644 |
|
effect-scale.min.js | File | 723 B | 0644 |
|
effect-shake.js | File | 1.84 KB | 0644 |
|
effect-shake.min.js | File | 846 B | 0644 |
|
effect-size.js | File | 5.29 KB | 0644 |
|
effect-size.min.js | File | 2.43 KB | 0644 |
|
effect-slide.js | File | 1.92 KB | 0644 |
|
effect-slide.min.js | File | 917 B | 0644 |
|
effect-transfer.js | File | 888 B | 0644 |
|
effect-transfer.min.js | File | 442 B | 0644 |
|
effect.js | File | 24.04 KB | 0644 |
|
effect.min.js | File | 10.09 KB | 0644 |
|
menu.js | File | 18.52 KB | 0644 |
|
menu.min.js | File | 9.96 KB | 0644 |
|
mouse.js | File | 6.08 KB | 0644 |
|
mouse.min.js | File | 3.35 KB | 0644 |
|
progressbar.js | File | 4.14 KB | 0644 |
|
progressbar.min.js | File | 2.5 KB | 0644 |
|
resizable.js | File | 29.78 KB | 0644 |
|
resizable.min.js | File | 18.38 KB | 0644 |
|
selectable.js | File | 7.94 KB | 0644 |
|
selectable.min.js | File | 4.4 KB | 0644 |
|
selectmenu.js | File | 15.96 KB | 0644 |
|
selectmenu.min.js | File | 9.28 KB | 0644 |
|
slider.js | File | 19.14 KB | 0644 |
|
slider.min.js | File | 10.51 KB | 0644 |
|
sortable.js | File | 46.52 KB | 0644 |
|
sortable.min.js | File | 24.91 KB | 0644 |
|
spinner.js | File | 14.1 KB | 0644 |
|
spinner.min.js | File | 7.5 KB | 0644 |
|
tabs.js | File | 23.11 KB | 0644 |
|
tabs.min.js | File | 11.73 KB | 0644 |
|
tooltip.js | File | 14.14 KB | 0644 |
|
tooltip.min.js | File | 6.1 KB | 0644 |
|