Performance of CSS Transitions vs. JS animation packages
Yes, there is a difference, CSS is much faster. It may be difficult to see until you get many running at the same time or the more they do. CSS animations are limited though. In most cases they really only work off the :hover
event. With JavaScript you can perform animations at any event: click
, mouseover
, mousemove
, mouseout
, keyup
, keydown
, etc.
In my opinion, jQuery is the best for JavaScript animations in 2010. See jQuery Demos
To add to Uphelix's (correct) answer: JavaScript is an interpreted language and the JS engine of the browser has to parse and execute every instruction during run-time (I know there exist JS compilers, like V8 (used in Chrome), but the principle remains the same).
On the other hand, browsers can implement CSS transitions natively, e.g. in C/C++ or something. This code will be compiled to machine language.
If CSS transitions are hardware accelerated or not, depends on the techniques the browser uses, the platform the browser runs on, etc.
You will notice the difference on mobile browsers (iPhone, Android, etc.).