Why not utilize CSS more? For example how animation is done in AngularJS? I know it's supposed to be more light weight than that but at least conceptually...
As for the CSS properties you can animate -- the code seems neutral enough to not really pick a baseline. So you have the freedom to pick your own level of browser support.
Just a nice organised starting point, and keeping the stuff that should be your code, your code.