Pastebin is 300% more awesome when you are logged in. Sign Up, it's FREE!
Guest

me

By: a guest on Nov 13th, 2008  |  syntax: JavaScript  |  size: 1.05 KB  |  hits: 290  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. if (typeof String.trim == 'undefined') {
  2.   String.prototype.trim = function () {
  3.     return this.replace (/^\s+|\s+$/g, '');
  4.   };
  5. }
  6.  
  7. function Transition (e) {
  8.  
  9.   var prop = e.style.transitionProperty.split (',');
  10.   var dur  = e.style.transitionDuration.split (',');
  11.   this.e = e;
  12.  
  13.   // assert (true, (prop.length == dur.length));
  14.  
  15.   for (var i = 0; i < prop.length; i++)
  16.     this[prop[i].trim ()] = dur[i].trim ();
  17.  
  18.   return this;
  19.  
  20. }
  21.  
  22. Transition.prototype = {
  23.   getProperties: function () {
  24.     var names = [];
  25.     for (var p in this)
  26.       if (typeof this[p] == 'string')
  27.         names.push (p);
  28.     return names;
  29.   },
  30.   applyTransitions: function (o) {
  31.     var names = this.getProperties ();
  32.     this.e.style.transitionProperty = names.join (', ');
  33.     var dur = [];
  34.  
  35.     for (var n in names)
  36.       dur.push (this[names[n]]);
  37.  
  38.     this.e.style.transitionDuration = dur.join (', ');
  39.  
  40.     if (typeof o == 'object')
  41.       // ({width: '50px', height: '200px'})
  42.       for (var p in o)
  43.         this.e.style[p] = o[p];
  44.   }
  45. };