-
-
Save lorenzopolidori/3794226 to your computer and use it in GitHub Desktop.
Testing for CSS 3D Transforms Support
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function has3d(){ | |
if (!window.getComputedStyle) { | |
return false; | |
} | |
var el = document.createElement('p'), | |
has3d, | |
transforms = { | |
'webkitTransform':'-webkit-transform', | |
'OTransform':'-o-transform', | |
'msTransform':'-ms-transform', | |
'MozTransform':'-moz-transform', | |
'transform':'transform' | |
}; | |
// Add it to the body to get the computed style | |
document.body.insertBefore(el, null); | |
for(var t in transforms){ | |
if( el.style[t] !== undefined ){ | |
el.style[t] = 'translate3d(1px,1px,1px)'; | |
has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]); | |
} | |
} | |
document.body.removeChild(el); | |
return (has3d !== undefined && has3d.length > 0 && has3d !== "none"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
For performance I'd go with something like:
Just so the above function only runs the once per page instead of whenever you need to detect if we have 3d...