Ist CSS3 Performance-mäßig die bessere Variante?
Im Allgemeinen ja.
Jein - es gibt sicher Browser bzw. Browserversionen (Achtung: Vermutung!) derern JavaScript-Engine so hochgezüchtet ist (die werden ja seit Jahren optimiert), dass sie im bestimmten Fällen schneller ist als die native CSS3-Variante (die ggf. erst seit ein paar Monaten drin ist).
JavaScript ist nicht direkt für die Animation zuständig. JavaScript setzt lediglich per Timeout Inline-Styles. Das läuft dann zurück in die in C++ implementierte Rendering-Engine, die auf die Zeichenbibliotheken zugreift. Die Geschwindigkeit der JavaScript-Engine ist da zweitrangig, schließlich wird hier nur .style.prop = 'value' aufgerufen. Bei nativen Transitions fällt die JavaScript-Engine als Mittler komplett weg, es ist also direkt C++-Kompilat verantwortlich.
Das ist aber ein Problem (falls es denn tatsächlich besteht) dass sich selbst löst - es ist also prinzipiell davon auszugehen, dass die native CSS3-Variante schneller ist, zumal diese bei modernen Browsern durchaus auch Hardwarebeschleunigt passiert.
Eben, diese Möglichkeit steht bei klassischen JavaScript-Animationen nur eingeschränkt zur Verfügung (man müsste CSS-Transforms per JS setzen).
Mathias