annotate src/main/webapp/imageServer/resources/js/jquery-ui-1.10.4/ui/jquery.ui.effect-explode.js @ 205:f719d73383db

Merge iiif_diva branch 964846688a95cc9b0af5ade832b8d34ae4a4bc21
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Mon, 08 Jul 2019 17:55:14 +0200
parents 764f47286679
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
jurzua
parents:
diff changeset
1 /*!
jurzua
parents:
diff changeset
2 * jQuery UI Effects Explode 1.10.4
jurzua
parents:
diff changeset
3 * http://jqueryui.com
jurzua
parents:
diff changeset
4 *
jurzua
parents:
diff changeset
5 * Copyright 2014 jQuery Foundation and other contributors
jurzua
parents:
diff changeset
6 * Released under the MIT license.
jurzua
parents:
diff changeset
7 * http://jquery.org/license
jurzua
parents:
diff changeset
8 *
jurzua
parents:
diff changeset
9 * http://api.jqueryui.com/explode-effect/
jurzua
parents:
diff changeset
10 *
jurzua
parents:
diff changeset
11 * Depends:
jurzua
parents:
diff changeset
12 * jquery.ui.effect.js
jurzua
parents:
diff changeset
13 */
jurzua
parents:
diff changeset
14 (function( $, undefined ) {
jurzua
parents:
diff changeset
15
jurzua
parents:
diff changeset
16 $.effects.effect.explode = function( o, done ) {
jurzua
parents:
diff changeset
17
jurzua
parents:
diff changeset
18 var rows = o.pieces ? Math.round( Math.sqrt( o.pieces ) ) : 3,
jurzua
parents:
diff changeset
19 cells = rows,
jurzua
parents:
diff changeset
20 el = $( this ),
jurzua
parents:
diff changeset
21 mode = $.effects.setMode( el, o.mode || "hide" ),
jurzua
parents:
diff changeset
22 show = mode === "show",
jurzua
parents:
diff changeset
23
jurzua
parents:
diff changeset
24 // show and then visibility:hidden the element before calculating offset
jurzua
parents:
diff changeset
25 offset = el.show().css( "visibility", "hidden" ).offset(),
jurzua
parents:
diff changeset
26
jurzua
parents:
diff changeset
27 // width and height of a piece
jurzua
parents:
diff changeset
28 width = Math.ceil( el.outerWidth() / cells ),
jurzua
parents:
diff changeset
29 height = Math.ceil( el.outerHeight() / rows ),
jurzua
parents:
diff changeset
30 pieces = [],
jurzua
parents:
diff changeset
31
jurzua
parents:
diff changeset
32 // loop
jurzua
parents:
diff changeset
33 i, j, left, top, mx, my;
jurzua
parents:
diff changeset
34
jurzua
parents:
diff changeset
35 // children animate complete:
jurzua
parents:
diff changeset
36 function childComplete() {
jurzua
parents:
diff changeset
37 pieces.push( this );
jurzua
parents:
diff changeset
38 if ( pieces.length === rows * cells ) {
jurzua
parents:
diff changeset
39 animComplete();
jurzua
parents:
diff changeset
40 }
jurzua
parents:
diff changeset
41 }
jurzua
parents:
diff changeset
42
jurzua
parents:
diff changeset
43 // clone the element for each row and cell.
jurzua
parents:
diff changeset
44 for( i = 0; i < rows ; i++ ) { // ===>
jurzua
parents:
diff changeset
45 top = offset.top + i * height;
jurzua
parents:
diff changeset
46 my = i - ( rows - 1 ) / 2 ;
jurzua
parents:
diff changeset
47
jurzua
parents:
diff changeset
48 for( j = 0; j < cells ; j++ ) { // |||
jurzua
parents:
diff changeset
49 left = offset.left + j * width;
jurzua
parents:
diff changeset
50 mx = j - ( cells - 1 ) / 2 ;
jurzua
parents:
diff changeset
51
jurzua
parents:
diff changeset
52 // Create a clone of the now hidden main element that will be absolute positioned
jurzua
parents:
diff changeset
53 // within a wrapper div off the -left and -top equal to size of our pieces
jurzua
parents:
diff changeset
54 el
jurzua
parents:
diff changeset
55 .clone()
jurzua
parents:
diff changeset
56 .appendTo( "body" )
jurzua
parents:
diff changeset
57 .wrap( "<div></div>" )
jurzua
parents:
diff changeset
58 .css({
jurzua
parents:
diff changeset
59 position: "absolute",
jurzua
parents:
diff changeset
60 visibility: "visible",
jurzua
parents:
diff changeset
61 left: -j * width,
jurzua
parents:
diff changeset
62 top: -i * height
jurzua
parents:
diff changeset
63 })
jurzua
parents:
diff changeset
64
jurzua
parents:
diff changeset
65 // select the wrapper - make it overflow: hidden and absolute positioned based on
jurzua
parents:
diff changeset
66 // where the original was located +left and +top equal to the size of pieces
jurzua
parents:
diff changeset
67 .parent()
jurzua
parents:
diff changeset
68 .addClass( "ui-effects-explode" )
jurzua
parents:
diff changeset
69 .css({
jurzua
parents:
diff changeset
70 position: "absolute",
jurzua
parents:
diff changeset
71 overflow: "hidden",
jurzua
parents:
diff changeset
72 width: width,
jurzua
parents:
diff changeset
73 height: height,
jurzua
parents:
diff changeset
74 left: left + ( show ? mx * width : 0 ),
jurzua
parents:
diff changeset
75 top: top + ( show ? my * height : 0 ),
jurzua
parents:
diff changeset
76 opacity: show ? 0 : 1
jurzua
parents:
diff changeset
77 }).animate({
jurzua
parents:
diff changeset
78 left: left + ( show ? 0 : mx * width ),
jurzua
parents:
diff changeset
79 top: top + ( show ? 0 : my * height ),
jurzua
parents:
diff changeset
80 opacity: show ? 1 : 0
jurzua
parents:
diff changeset
81 }, o.duration || 500, o.easing, childComplete );
jurzua
parents:
diff changeset
82 }
jurzua
parents:
diff changeset
83 }
jurzua
parents:
diff changeset
84
jurzua
parents:
diff changeset
85 function animComplete() {
jurzua
parents:
diff changeset
86 el.css({
jurzua
parents:
diff changeset
87 visibility: "visible"
jurzua
parents:
diff changeset
88 });
jurzua
parents:
diff changeset
89 $( pieces ).remove();
jurzua
parents:
diff changeset
90 if ( !show ) {
jurzua
parents:
diff changeset
91 el.hide();
jurzua
parents:
diff changeset
92 }
jurzua
parents:
diff changeset
93 done();
jurzua
parents:
diff changeset
94 }
jurzua
parents:
diff changeset
95 };
jurzua
parents:
diff changeset
96
jurzua
parents:
diff changeset
97 })(jQuery);