One thing which you should definitely keep in mind is the order in which you use vendor-specific prefixes. There is a difference between saying:
gallery.css("transition-duration", duration + "ms");
gallery.css("-webkit-transition-duration", duration + "ms");
gallery.css("-moz-transition-duration", duration + "ms");
gallery.css("-ms-transition-duration", duration + "ms");
gallery.css("-o-transition-duration", duration + "ms");
and...
gallery.css("-webkit-transition-duration", duration + "ms");
gallery.css("-moz-transition-duration", duration + "ms");
gallery.css("-ms-transition-duration", duration + "ms");
gallery.css("-o-transition-duration", duration + "ms");
gallery.css("transition-duration", duration + "ms");
As mentioned in this SO question's accepted answer:
Whichever is last out of -webkit-border-radius
and border-radius
will be the one that's used.
-webkit-border-radius
is the "experimental" property - the implementation may contain deviations from the specification. The implementation for border-radius
will match what's in the specification.
It's preferable to have the "W3C implementation" used when it's available, to ensure consistency between all the browsers that support it.
With that said - be aware that your current implementation is likely to override the "W3C implemented" version with the vendor-specific experimental property.
On to a more specific answer to your question:
This table may give you a bit more insight into which versions of which browsers claim support for 3d transformation CSS, from version to version.
Internet Explorer
According to this blog article, IE 10 supports full CSS3 3D Transformations (note that IE9 only supported 2-D transforms, and previous versions didn't even support that).
Firefox
As of the fixing of Bug 505115, Firefox claims support of CSS3 3D-Transforms. According to this example page, as well - Mozilla does support the transformations (and even demonstrates doing so if you load that page in Firefox).
Unfortunately, more complicated tests in Firefox fail. See this link for an example of something that works elegantly in Chrome, but not in FF. Partial support, to be sure, but without the animation of the WebKit implementation.
Note: I am using Firefox 20.0.1 in order to test.
Opera
Opera provides this article to describe their support of transforms.
End Result:
Support is coming to the major browsers, but slowly. Future versions claim more full support, but each vendor seems to have a different definition of what "full" means. So - as usual in the web-world... coder-beware... test in multiple environments and see what actually works before trusting the browsers to function properly in accordance with specs.