| /* |
| Copyright (c) 2004-2005, The Dojo Foundation |
| All Rights Reserved. |
| |
| Licensed under the Academic Free License version 2.1 or above OR the |
| modified BSD license. For more information on Dojo licensing, see: |
| |
| http://dojotoolkit.org/community/licensing.shtml |
| */ |
| |
| dojo.provide("dojo.fx.svg"); |
| |
| dojo.require("dojo.svg"); |
| dojo.require("dojo.lang"); |
| dojo.require("dojo.animation.*"); |
| dojo.require("dojo.event.*"); |
| |
| dojo.fx.svg.fadeOut = function(node, duration, callback){ |
| return dojo.fx.svg.fade(node, duration, dojo.svg.getOpacity(node), 0, callback); |
| }; |
| dojo.fx.svg.fadeIn = function(node, duration, callback){ |
| return dojo.fx.svg.fade(node, duration, dojo.svg.getOpacity(node), 1, callback); |
| }; |
| dojo.fx.svg.fadeHide = function(node, duration, callback){ |
| if(!duration) { duration = 150; } // why not have a default? |
| return dojo.fx.svg.fadeOut(node, duration, function(node) { |
| if(typeof callback == "function") { callback(node); } |
| }); |
| }; |
| dojo.fx.svg.fadeShow = function(node, duration, callback){ |
| if(!duration) { duration = 150; } // why not have a default? |
| return dojo.fx.svg.fade(node, duration, 0, 1, callback); |
| }; |
| dojo.fx.svg.fade = function(node, duration, startOpac, endOpac, callback){ |
| var anim = new dojo.animation.Animation( |
| new dojo.math.curves.Line([startOpac],[endOpac]), |
| duration, |
| 0 |
| ); |
| dojo.event.connect(anim, "onAnimate", function(e){ |
| dojo.svg.setOpacity(node, e.x); |
| }); |
| if (callback) { |
| dojo.event.connect(anim, "onEnd", function(e){ |
| callback(node, anim); |
| }); |
| }; |
| anim.play(true); |
| return anim; |
| }; |
| |
| ///////////////////////////////////////////////////////////////////////////////////////// |
| // TODO |
| ///////////////////////////////////////////////////////////////////////////////////////// |
| |
| // SLIDES |
| dojo.fx.svg.slideTo = function(node, endCoords, duration, callback) { }; |
| dojo.fx.svg.slideBy = function(node, coords, duration, callback) { }; |
| dojo.fx.svg.slide = function(node, startCoords, endCoords, duration, callback) { |
| var anim = new dojo.animation.Animation( |
| new dojo.math.curves.Line([startCoords],[endCoords]), |
| duration, |
| 0 |
| ); |
| dojo.event.connect(anim, "onAnimate", function(e){ |
| dojo.svg.setCoords(node, {x: e.x, y: e.y }); |
| }); |
| if (callback) { |
| dojo.event.connect(anim, "onEnd", function(e){ |
| callback(node, anim); |
| }); |
| }; |
| anim.play(true); |
| return anim; |
| }; |
| |
| // COLORS |
| dojo.fx.svg.colorFadeIn = function(node, startRGB, duration, delay, callback) { }; |
| dojo.fx.svg.highlight = dojo.fx.svg.colorFadeIn; |
| dojo.fx.svg.colorFadeFrom = dojo.fx.svg.colorFadeIn; |
| |
| dojo.fx.svg.colorFadeOut = function(node, endRGB, duration, delay, callback) { }; |
| dojo.fx.svg.unhighlight = dojo.fx.svg.colorFadeOut; |
| dojo.fx.svg.colorFadeTo = dojo.fx.svg.colorFadeOut; |
| |
| dojo.fx.svg.colorFade = function(node, startRGB, endRGB, duration, callback, dontPlay) { }; |
| |
| // WIPES |
| dojo.fx.svg.wipeIn = function(node, duration, callback, dontPlay) { }; |
| dojo.fx.svg.wipeInToHeight = function(node, duration, height, callback, dontPlay) { } |
| dojo.fx.svg.wipeOut = function(node, duration, callback, dontPlay) { }; |
| |
| // Explode and Implode |
| dojo.fx.svg.explode = function(startNode, endNode, duration, callback) { }; |
| dojo.fx.svg.explodeFromBox = function(startCoords, endNode, duration, callback) { }; |
| dojo.fx.svg.implode = function(startNode, endNode, duration, callback) { }; |
| dojo.fx.svg.implodeToBox = function(startNode, endCoords, duration, callback) { }; |
| dojo.fx.svg.Exploder = function(triggerNode, boxNode) { }; |
| |
| // html mixes in, we want SVG to remain separate |