From ad80bbf62e379c4d36528f9de15479bbb94948c4 Mon Sep 17 00:00:00 2001 From: 06wj <06wj@163.com> Date: Sun, 27 Sep 2020 10:58:40 +0800 Subject: [PATCH] docs: update browser jsdoc comments --- src/utils/browser.js | 203 +++++++++++++++++++++++++------------------ 1 file changed, 117 insertions(+), 86 deletions(-) diff --git a/src/utils/browser.js b/src/utils/browser.js index cfc82160..3a834b90 100644 --- a/src/utils/browser.js +++ b/src/utils/browser.js @@ -7,109 +7,124 @@ import log from './log'; /** - * @language=en - * @class Browser feature set - * @static + * 浏览器特性集合 + * @namespace */ const browser = (function() { - let ua = navigator.userAgent; - let doc = document; - let win = window; - let docElem = doc.documentElement; + const ua = navigator.userAgent; + const doc = document; + const win = window; + const docElem = doc.documentElement; - let data = /** @lends browser */ { - /** - * 是否是iphone - * @type {Boolean} - */ + const data = /** @lends browser */ { + /** + * 是否是iphone + * @readOnly + * @type {boolean} + */ iphone: /iphone/i.test(ua), /** - * 是否是ipad - * @type {Boolean} - */ + * 是否是ipad + * @readOnly + * @type {boolean} + */ ipad: /ipad/i.test(ua), /** - * 是否是ipod - * @type {Boolean} - */ + * 是否是ipod + * @readOnly + * @type {boolean} + */ ipod: /ipod/i.test(ua), /** - * 是否是ios - * @type {Boolean} - */ + * 是否是ios + * @readOnly + * @type {boolean} + */ ios: /iphone|ipad|ipod/i.test(ua), /** - * 是否是android - * @type {Boolean} - */ + * 是否是android + * @readOnly + * @type {boolean} + */ android: /android/i.test(ua), /** - * 是否是webkit - * @type {Boolean} - */ + * 是否是webkit + * @readOnly + * @type {boolean} + */ webkit: /webkit/i.test(ua), /** - * 是否是chrome - * @type {Boolean} - */ + * 是否是chrome + * @readOnly + * @type {boolean} + */ chrome: /chrome/i.test(ua), /** - * 是否是safari - * @type {Boolean} - */ + * 是否是safari + * @readOnly + * @type {boolean} + */ safari: /safari/i.test(ua), /** - * 是否是firefox - * @type {Boolean} - */ + * 是否是firefox + * @readOnly + * @type {boolean} + */ firefox: /firefox/i.test(ua), /** - * 是否是ie - * @type {Boolean} - */ + * 是否是ie + * @readOnly + * @type {boolean} + */ ie: /msie/i.test(ua), /** - * 是否是opera - * @type {Boolean} - */ + * 是否是opera + * @readOnly + * @type {boolean} + */ opera: /opera/i.test(ua), /** - * 是否支持触碰事件。 - * @type {String} - */ + * 是否支持触碰事件。 + * @readOnly + * @type {boolean} + */ supportTouch: 'ontouchstart' in win, /** - * 是否支持canvas元素。 - * @type {Boolean} - */ + * 是否支持canvas元素。 + * @readOnly + * @type {boolean} + */ supportCanvas: !!doc.createElement('canvas').getContext, /** - * 是否支持本地存储localStorage。 - * @type {Boolean} - */ - supportStorage: false, + * 是否支持本地存储localStorage。 + * @readOnly + * @type {boolean} + */ + supportStorage: undefined, /** - * 是否支持检测设备方向orientation。 - * @type {Boolean} - */ + * 是否支持检测设备方向orientation。 + * @readOnly + * @type {boolean} + */ supportOrientation: 'orientation' in win || 'orientation' in win.screen, /** - * 是否支持检测加速度devicemotion。 - * @type {Boolean} - */ + * 是否支持检测加速度devicemotion。 + * @readOnly + * @type {boolean} + */ supportDeviceMotion: 'ondevicemotion' in win, }; @@ -120,14 +135,16 @@ const browser = (function() { localStorage.removeItem(value); data.supportStorage = true; } catch (e) { + data.supportStorage = false; log.warn('LocalStorage disabled'); } /** - * 浏览器厂商CSS前缀的js值。比如:webkit。 - * @type {String} - */ - + * 浏览器厂商CSS前缀的js值。比如:webkit。 + * @memberOf browser + * @readOnly + * @type {string} + */ let jsVendor; if (data.webkit) { @@ -144,24 +161,30 @@ const browser = (function() { data.jsVendor = jsVendor; /** - * 浏览器厂商CSS前缀的css值。比如:-webkit-。 - * @type {String} - */ + * 浏览器厂商CSS前缀的css值。比如:-webkit-。 + * @memberOf browser + * @readOnly + * @type {string} + */ let cssVendor = (data.cssVendor = '-' + jsVendor + '-'); // css transform/3d feature dectection - let testElem = doc.createElement('div'); + const testElem = doc.createElement('div'); let style = testElem.style; /** - * 是否支持CSS Transform变换。 - * @type {Boolean} - */ - let supportTransform = style[jsVendor + 'Transform'] !== undefined; + * 是否支持CSS Transform变换。 + * @memberOf browser + * @readOnly + * @type {boolean} + */ + const supportTransform = style[jsVendor + 'Transform'] !== undefined; /** - * 是否支持CSS Transform 3D变换。 - * @type {Boolean} - */ + * 是否支持CSS Transform 3D变换。 + * @memberOf browser + * @readOnly + * @type {boolean} + */ let supportTransform3D = style[jsVendor + 'Perspective'] !== undefined; if (supportTransform3D) { testElem.id = 'test3d'; @@ -174,28 +197,35 @@ const browser = (function() { doc.head.removeChild(style); docElem.removeChild(testElem); } + data.supportTransform = supportTransform; data.supportTransform3D = supportTransform3D; - let supportTouch = data.supportTouch; + const supportTouch = data.supportTouch; /** - * 鼠标或触碰开始事件。对应touchstart或mousedown。 - * @type {String} - */ - let POINTER_START = supportTouch ? 'touchstart' : 'mousedown'; + * 鼠标或触碰开始事件。对应touchstart或mousedown。 + * @memberOf browser + * @readOnly + * @type {string} + */ + const POINTER_START = supportTouch ? 'touchstart' : 'mousedown'; /** - * 鼠标或触碰移动事件。对应touchmove或mousemove。 - * @type {String} - */ - let POINTER_MOVE = supportTouch ? 'touchmove' : 'mousemove'; + * 鼠标或触碰移动事件。对应touchmove或mousemove。 + * @memberOf browser + * @readOnly + * @type {string} + */ + const POINTER_MOVE = supportTouch ? 'touchmove' : 'mousemove'; /** - * 鼠标或触碰结束事件。对应touchend或mouseup。 - * @type {String} - */ - let POINTER_END = supportTouch ? 'touchend' : 'mouseup'; + * 鼠标或触碰结束事件。对应touchend或mouseup。 + * @memberOf browser + * @readOnly + * @type {string} + */ + const POINTER_END = supportTouch ? 'touchend' : 'mouseup'; data.POINTER_START = POINTER_START; data.POINTER_MOVE = POINTER_MOVE; @@ -203,4 +233,5 @@ const browser = (function() { return data; }()); + export default browser;