var ua = navigator.userAgent,win = window, doc = document, docElem = doc.documentElement;
var data = {
iphone: /iphone/i.test(ua),
ipad: /ipad/i.test(ua),
ipod: /ipod/i.test(ua),
android: /android/i.test(ua),
webkit: /webkit/i.test(ua),
chrome: /chrome/i.test(ua),
safari: /safari/i.test(ua),
firefox: /firefox/i.test(ua),
ie: /msie/i.test(ua),
opera: /opera/i.test(ua),
supportTouch: 'ontouchstart' in win,
supportCanvas: doc.createElement('canvas').getContext != null,
supportStorage: false,
supportOrientation: 'orientation' in win,
supportDeviceMotion: 'ondevicemotion' in win
};
//`localStorage` is null or `localStorage.setItem` throws error in some cases (e.g. localStorage is disabled)
try{
var value = 'xingqiba';
localStorage.setItem(value, value);
localStorage.removeItem(value);
data.supportStorage = true;
}catch(e){ };
//vendro prefix
var jsVendor = data.jsVendor = data.webkit ? 'webkit' : data.firefox ? 'Moz' : data.opera ? 'O' : data.ie ? 'ms' : '';
var cssVendor = data.cssVendor = '-' + jsVendor + '-';
//css transform/3d feature dectection
var testElem = doc.createElement('div'), style = testElem.style;
var supportTransform = style[jsVendor + 'Transform'] != undefined;
var supportTransform3D = style[jsVendor + 'Perspective'] != undefined;
if(supportTransform3D){
testElem.id = 'test3d';
style = doc.createElement('style');
style.textContent = '@media ('+ cssVendor +'transform-3d){#test3d{height:3px}}';
doc.head.appendChild(style);
docElem.appendChild(testElem);
supportTransform3D = testElem.offsetHeight == 3;
doc.head.removeChild(style);
docElem.removeChild(testElem);
};
data.supportTransform = supportTransform;
data.supportTransform3D = supportTransform3D;
Created
November 14, 2016 02:55
-
-
Save ixqbar/520d772cd7511ed4ccdbbaf0a29d9597 to your computer and use it in GitHub Desktop.
js
Author
ixqbar
commented
Nov 16, 2016
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment