/*! * jQuery UI Effects Explode 1.13.3 * https://jqueryui.com * * Copyright OpenJS Foundation and other contributors * Released under the MIT license. * https://jquery.org/license */ //>>label: Explode Effect //>>group: Effects /* eslint-disable max-len */ //>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness. /* eslint-enable max-len */ //>>docs: https://api.jqueryui.com/explode-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( "explode", "hide", function( options, done ) { var i, j, left, top, mx, my, rows = options.pieces ? Math.round( Math.sqrt( options.pieces ) ) : 3, cells = rows, element = $( this ), mode = options.mode, show = mode === "show", // Show and then visibility:hidden the element before calculating offset offset = element.show().css( "visibility", "hidden" ).offset(), // Width and height of a piece width = Math.ceil( element.outerWidth() / cells ), height = Math.ceil( element.outerHeight() / rows ), pieces = []; // Children animate complete: function childComplete() { pieces.push( this ); if ( pieces.length === rows * cells ) { animComplete(); } } // Clone the element for each row and cell. for ( i = 0; i < rows; i++ ) { // ===> top = offset.top + i * height; my = i - ( rows - 1 ) / 2; for ( j = 0; j < cells; j++ ) { // ||| left = offset.left + j * width; mx = j - ( cells - 1 ) / 2; // Create a clone of the now hidden main element that will be absolute positioned // within a wrapper div off the -left and -top equal to size of our pieces element .clone() .appendTo( "body" ) .wrap( "<div></div>" ) .css( { position: "absolute", visibility: "visible", left: -j * width, top: -i * height } ) // Select the wrapper - make it overflow: hidden and absolute positioned based on // where the original was located +left and +top equal to the size of pieces .parent() .addClass( "ui-effects-explode" ) .css( { position: "absolute", overflow: "hidden", width: width, height: height, left: left + ( show ? mx * width : 0 ), top: top + ( show ? my * height : 0 ), opacity: show ? 0 : 1 } ) .animate( { left: left + ( show ? 0 : mx * width ), top: top + ( show ? 0 : my * height ), opacity: show ? 1 : 0 }, options.duration || 500, options.easing, childComplete ); } } function animComplete() { element.css( { visibility: "visible" } ); $( pieces ).remove(); 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 |
|