Modernizr.addTest('csstransformspreserve3d', function () {
- var prop,
- val,
- cssText,
- ret;
-
- prop = 'transform-style';
- if ('webkitTransformStyle' in document.documentElement.style) {
- prop = '-webkit-' + prop;
- }
- val = 'preserve-3d';
- cssText = '#modernizr { ' + prop + ': ' + val + '; }';
- Modernizr.testStyles(cssText, function (el, rule) {
- ret = window.getComputedStyle ? getComputedStyle(el, null).getPropertyValue(prop) : '';
- });
- return (ret === val);
+ var prop,
+ val,
+ cssText,
+ ret;
+
+ prop = 'transform-style';
+ if ('webkitTransformStyle' in document.documentElement.style) {
+ prop = '-webkit-' + prop;
+ }
+ val = 'preserve-3d';
+ cssText = '#modernizr { ' + prop + ': ' + val + '; }';
+ Modernizr.testStyles(cssText, function (el, rule) {
+ ret = window.getComputedStyle ? getComputedStyle(el, null).getPropertyValue(prop) : '';
+ });
+ return (ret === val);
});
Modernizr.addTest('ftouch', function () {
- var bool;
+ var bool;
- if (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch || ('onmsgesturechange' in window)) {
- bool = true;
- } else {
- var query = ['@media (', Modernizr._prefixes.join('touch-enabled),('), 'heartz', ')', '{#modernizr{top:9px;position:absolute}}'].join('');
- Modernizr.testStyles(query, function (node) {
- bool = node.offsetTop === 9;
- });
- }
+ if (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch || ('onmsgesturechange' in window)) {
+ bool = true;
+ } else {
+ var query = ['@media (', Modernizr._prefixes.join('touch-enabled),('), 'heartz', ')', '{#modernizr{top:9px;position:absolute}}'].join('');
+ Modernizr.testStyles(query, function (node) {
+ bool = node.offsetTop === 9;
+ });
+ }
- return bool;
+ return bool;
});
Modernizr.addTest('fullscreen', function () {
- for (var i = 0; i < Modernizr._domPrefixes.length; i++) {
- if (document[Modernizr._domPrefixes[i].toLowerCase() + 'CancelFullScreen'] || document[Modernizr._domPrefixes[i].toLowerCase() + 'ExitFullscreen'])
- return true;
- }
- return !!document['cancelFullScreen'] || false;
+ for (var i = 0; i < Modernizr._domPrefixes.length; i++) {
+ if (document[Modernizr._domPrefixes[i].toLowerCase() + 'CancelFullScreen'] || document[Modernizr._domPrefixes[i].toLowerCase() + 'ExitFullscreen'])
+ return true;
+ }
+ return !!document['cancelFullScreen'] || false;
});
Modernizr.addTest('ipad', function () {
- return !!navigator.userAgent.match(/iPad/i);
+ return !!navigator.userAgent.match(/iPad/i);
});
Modernizr.addTest('iphone', function () {
- return !!navigator.userAgent.match(/iPhone/i);
+ return !!navigator.userAgent.match(/iPhone/i);
});
Modernizr.addTest('ipod', function () {
- return !!navigator.userAgent.match(/iPod/i);
+ return !!navigator.userAgent.match(/iPod/i);
});
Modernizr.addTest('ios', function () {
- return (Modernizr.ipad || Modernizr.ipod || Modernizr.iphone);
+ return (Modernizr.ipad || Modernizr.ipod || Modernizr.iphone);
});
Modernizr.addTest('ios7', function () {
- return Modernizr.ios && navigator.userAgent.match(/(iPad|iPhone|iPod touch);.*CPU.*OS 7_\d/i);
+ return Modernizr.ios && navigator.userAgent.match(/(iPad|iPhone|iPod touch);.*CPU.*OS 7_\d/i);
+});
+
+Modernizr.addTest('firefox', function () {
+ return !!navigator.userAgent.match(/firefox/i);
+});
+
+Modernizr.addTest('edge', function () {
+ return !!navigator.userAgent.match(/edge/i);
+});
+
+Modernizr.addTest('msie', function () {
+ return !!navigator.userAgent.match(/trident/i);
+});
+
+Modernizr.addTest('mozrotation', function () {
+ return Modernizr.firefox || Modernizr.edge || Modernizr.msie;
});
\ No newline at end of file
-moz-transform-style: preserve-3d;
-webkit-transform-style: preserve-3d;
-o-transform-style: preserve-3d;
- -ms-transform-style: preserve-3d;
transform-style: preserve-3d;
}
-moz-transform: rotateY(0deg) translate3d(0, 0, 0);
}
+.mozrotation .doublePage._3d .right {
+ -moz-transform: rotateY(0deg) translate3d(0, 0, 0);
+ transform: rotateY(0deg) translate3d(0, 0, 0);
+}
+
.doublePage._3d .left {
-webkit-transform: rotate3d(0, 1, 0, 180deg);
-o-transform: rotate3d(0, 1, 0, 180deg);
-moz-transform: rotateY(180deg) translate3d(0, 0, 0);
}
+.mozrotation .doublePage._3d .left {
+ transform: rotateY(180deg) translate3d(0, 0, 0);
+ -moz-transform: rotateY(180deg) translate3d(0, 0, 0);
+}
+
.doublePage._3d.nextstart {
-webkit-transform: rotate3d(0, 1, 0, 360deg);
-o-transform: rotate3d(0, 1, 0, 360deg);
transform-origin: 0 0;
}
+.mozrotation .doublePage._3d.nextstart {
+ -moz-transform: rotateY(360deg) translate3d(0, 0, 0);
+ transform: rotateY(360deg) translate3d(0, 0, 0);
+}
+
.doublePage._3d.nextend {
-webkit-transform: rotate3d(0, 1, 0, 180deg);
-moz-transform: rotateY(180deg) translate3d(0, 0, 0);
}
-.doublePage._3d.prevstart {
+.mozrotation .doublePage._3d.nextend {
+ -moz-transform: rotateY(180deg) translate3d(0, 0, 0);
+ transform: rotateY(180deg) translate3d(0, 0, 0);
+}
+.doublePage._3d.prevstart {
-webkit-transform: rotate3d(0, 1, 0, 180deg);
-o-transform: rotate3d(0, 1, 0, 180deg);
-ms-transform: rotate3d(0, 1, 0, 180deg);
transform-origin: 0 0;
}
+.mozrotation .doublePage._3d.prevstart {
+ -moz-transform: rotateY(180deg) translate3d(0, 0, 0);
+ transform: rotateY(180deg) translate3d(0, 0, 0);
+}
+
.doublePage._3d.prevend {
-webkit-transform: rotate3d(0, 1, 0, 360deg);
-moz-transform: rotateY(360deg) translate3d(0, 0, 0);
}
+.mozrotation .doublePage._3d.prevend {
+ -moz-transform: rotateY(360deg) translate3d(0, 0, 0);
+ transform: rotateY(360deg) translate3d(0, 0, 0);
+}
+
a.button {
display: inline-block;
padding: 8px 32px 8px 16px;