From 288b6190121618090107b3c0bb4f9e3539608d3b Mon Sep 17 00:00:00 2001 From: RaNaN <Mast3rRaNaN@hotmail.de> Date: Sun, 2 Sep 2012 19:22:48 +0200 Subject: modal dialog --- module/web/static/js/utils/animations.js | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 module/web/static/js/utils/animations.js (limited to 'module/web/static/js/utils') diff --git a/module/web/static/js/utils/animations.js b/module/web/static/js/utils/animations.js new file mode 100644 index 000000000..9b1448f61 --- /dev/null +++ b/module/web/static/js/utils/animations.js @@ -0,0 +1,36 @@ +define(['jquery', 'underscore', 'transit'], function(jQuery, _) { + + // Overwrite common animations with transitions + jQuery.each({ + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" } + }, function(name, props) { + jQuery.fn[ name ] = function(speed, easing, callback) { + return this.transition(props, speed, easing, callback); + }; + }); + + jQuery.fn._transit = jQuery.fn.transit; + + // Over riding transit plugin to support hide and show + // Props retains it properties across multiple calls, therefore props.show value is introduced + jQuery.fn.transit = jQuery.fn.transition = function(props, duration, easing, callback) { + var self = this; + var cb = callback; + if (props && (props.opacity === 'hide' || (props.opacity === 0 && props.show === true))) { + props.opacity = 0; + props.show = true; + + callback = function() { + self.css({display: 'none'}); + if (typeof cb === 'function') { cb.apply(self); } + }; + } else if (props && (props.opacity === 'show' || (props.opacity === 1 && props.show === true))) { + props.opacity = 1; + props.show = true; + this.css({display: 'block'}); + } + + return this._transit(props, duration, easing, callback); + }; +}); \ No newline at end of file -- cgit v1.2.3