webui-aria2/js/libs/dojox/app/transition.js.uncompressed.js
2012-05-01 19:52:07 +08:00

62 lines
2.1 KiB
JavaScript

//>>built
define("dojox/app/transition", ["dojo/_base/kernel", "dojo/_base/array","dojo/_base/html","dojo/DeferredList","./animation"],
function(dojo, darray, dhtml, DeferredList,animation){
return function(from, to, options){
var rev = (options && options.reverse) ? -1 : 1;
if(!options || !options.transition || !animation[options.transition]){
dojo.style(from,"display","none");
dojo.style(to, "display", "");
if(options.transitionDefs){
if(options.transitionDefs[from.id]){
options.transitionDefs[from.id].resolve(from);
}
if(options.transitionDefs[to.id]){
options.transitionDefs[to.id].resolve(to);
}
}
}else{
var defs=[];
var transit=[];
var duration = 250;
if(options.transition === "fade"){
duration = 600;
}else if (options.transition === "flip"){
duration = 200;
}
dojo.style(from, "display", "");
dojo.style(to, "display", "");
if (from){
//create animation to transit "from" out
var fromTransit = animation[options.transition](from, {
"in": false,
direction: rev,
duration: duration,
deferred: (options.transitionDefs && options.transitionDefs[from.id]) ? options.transitionDefs[from.id] : null
});
defs.push(fromTransit.deferred);//every animation object should have a deferred.
transit.push(fromTransit);
}
//create animation to transit "to" in
var toTransit = animation[options.transition](to, {
direction: rev,
duration: duration,
deferred: (options.transitionDefs && options.transitionDefs[to.id]) ? options.transitionDefs[to.id] : null
});
defs.push(toTransit.deferred);//every animation object should have a deferred.
transit.push(toTransit);
//TODO If it is flip use the chainedPlay
//play fromTransit and toTransit together
if(options.transition === "flip"){
animation.chainedPlay(transit);
}else{
animation.groupedPlay(transit);
}
return new dojo.DeferredList(defs);
}
};
});