browsernizr
Version:
Modernizr wrapper for use with browserify
47 lines (39 loc) • 1.5 kB
JavaScript
/*!
{
"name": "CSS Transform Style preserve-3d",
"property": "preserve3d",
"authors": ["denyskoch", "aFarkas"],
"tags": ["css"],
"notes": [{
"name": "MDN Docs",
"href": "https://developer.mozilla.org/en-US/docs/Web/CSS/transform-style"
},{
"name": "Related Github Issue",
"href": "https://github.com/Modernizr/Modernizr/issues/1748"
}]
}
!*/
/* DOC
Detects support for `transform-style: preserve-3d`, for getting a proper 3D perspective on elements.
*/
var Modernizr = require('./../../lib/Modernizr.js');
var createElement = require('./../../lib/createElement.js');
var docElement = require('./../../lib/docElement.js');
Modernizr.addTest('preserve3d', function() {
var outerAnchor, innerAnchor;
var CSS = window.CSS;
var result = false;
if (CSS && CSS.supports && CSS.supports('(transform-style: preserve-3d)')) {
return true;
}
outerAnchor = createElement('a');
innerAnchor = createElement('a');
outerAnchor.style.cssText = 'display: block; transform-style: preserve-3d; transform-origin: right; transform: rotateY(40deg);';
innerAnchor.style.cssText = 'display: block; width: 9px; height: 1px; background: #000; transform-origin: right; transform: rotateY(40deg);';
outerAnchor.appendChild(innerAnchor);
docElement.appendChild(outerAnchor);
result = innerAnchor.getBoundingClientRect();
docElement.removeChild(outerAnchor);
result = result.width && result.width < 4;
return result;
});