diff options
author | yvesf <yvesf-git@xapek.org> | 2010-11-22 14:34:55 +0100 |
---|---|---|
committer | yvesf <yvesf-git@xapek.org> | 2010-11-22 14:34:55 +0100 |
commit | af15f2c4a192dea02aab9e519defc68c71763ec4 (patch) | |
tree | 56edbb3964a98d4b172dcf3a1e5c10c9a5323abc /static/development-bundle/ui/jquery.effects.explode.js | |
parent | f9e1648d011302bc0055737034b01774c58f584a (diff) | |
download | booksearch-af15f2c4a192dea02aab9e519defc68c71763ec4.tar.gz booksearch-af15f2c4a192dea02aab9e519defc68c71763ec4.zip |
jquery ui
Diffstat (limited to 'static/development-bundle/ui/jquery.effects.explode.js')
-rw-r--r-- | static/development-bundle/ui/jquery.effects.explode.js | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/static/development-bundle/ui/jquery.effects.explode.js b/static/development-bundle/ui/jquery.effects.explode.js new file mode 100644 index 0000000..a0e3c35 --- /dev/null +++ b/static/development-bundle/ui/jquery.effects.explode.js @@ -0,0 +1,79 @@ +/* + * jQuery UI Effects Explode 1.8.6 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Explode + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.explode = function(o) { + + return this.queue(function() { + + var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; + var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; + + o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode; + var el = $(this).show().css('visibility', 'hidden'); + var offset = el.offset(); + + //Substract the margins - not fixing the problem yet. + offset.top -= parseInt(el.css("marginTop"),10) || 0; + offset.left -= parseInt(el.css("marginLeft"),10) || 0; + + var width = el.outerWidth(true); + var height = el.outerHeight(true); + + for(var i=0;i<rows;i++) { // = + for(var j=0;j<cells;j++) { // || + el + .clone() + .appendTo('body') + .wrap('<div></div>') + .css({ + position: 'absolute', + visibility: 'visible', + left: -j*(width/cells), + top: -i*(height/rows) + }) + .parent() + .addClass('ui-effects-explode') + .css({ + position: 'absolute', + overflow: 'hidden', + width: width/cells, + height: height/rows, + left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0), + top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0), + opacity: o.options.mode == 'show' ? 0 : 1 + }).animate({ + left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)), + top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)), + opacity: o.options.mode == 'show' ? 1 : 0 + }, o.duration || 500); + } + } + + // Set a timeout, to call the callback approx. when the other animations have finished + setTimeout(function() { + + o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide(); + if(o.callback) o.callback.apply(el[0]); // Callback + el.dequeue(); + + $('div.ui-effects-explode').remove(); + + }, o.duration || 500); + + + }); + +}; + +})(jQuery); |