transit.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. define("dojox/css3/transit", ["dojo/_base/kernel", "dojo/_base/array","dojo/dom-style","dojo/DeferredList","./transition"],
  2. function(dojo, darray, domStyle, DeferredList,transition){
  3. var transit = function(from, to, options){
  4. var rev = (options && options.reverse) ? -1 : 1;
  5. if(!options || !options.transition || !transition[options.transition]){
  6. domStyle.set(from,"display","none");
  7. domStyle.set(to, "display", "");
  8. if(options.transitionDefs){
  9. if(options.transitionDefs[from.id]){
  10. options.transitionDefs[from.id].resolve(from);
  11. }
  12. if(options.transitionDefs[to.id]){
  13. options.transitionDefs[to.id].resolve(to);
  14. }
  15. }
  16. }else{
  17. var defs=[];
  18. var transit=[];
  19. var duration = 250;
  20. if(options.transition === "fade"){
  21. duration = 600;
  22. }else if (options.transition === "flip"){
  23. duration = 200;
  24. }
  25. domStyle.set(from, "display", "");
  26. domStyle.set(to, "display", "");
  27. if (from){
  28. //create transition to transit "from" out
  29. var fromTransit = transition[options.transition](from, {
  30. "in": false,
  31. direction: rev,
  32. duration: duration,
  33. deferred: (options.transitionDefs && options.transitionDefs[from.id]) ? options.transitionDefs[from.id] : null
  34. });
  35. defs.push(fromTransit.deferred);//every transition object should have a deferred.
  36. transit.push(fromTransit);
  37. }
  38. //create transition to transit "to" in
  39. var toTransit = transition[options.transition](to, {
  40. direction: rev,
  41. duration: duration,
  42. deferred: (options.transitionDefs && options.transitionDefs[to.id]) ? options.transitionDefs[to.id] : null
  43. });
  44. defs.push(toTransit.deferred);//every transition object should have a deferred.
  45. transit.push(toTransit);
  46. //TODO If it is flip use the chainedPlay
  47. //play fromTransit and toTransit together
  48. if(options.transition === "flip"){
  49. transition.chainedPlay(transit);
  50. }else{
  51. transition.groupedPlay(transit);
  52. }
  53. return new DeferredList(defs);
  54. }
  55. };
  56. return transit;
  57. });