UNPKG

mov-mobile

Version:

Mov - 让你感到幸福的 Vue 组件库

161 lines (143 loc) 4.52 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _toast = require('../toast'); var _toast2 = _interopRequireDefault(_toast); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // 业务util var Tool = function () { function Tool() { _classCallCheck(this, Tool); } _createClass(Tool, [{ key: 'info', value: function info(options) { _toast2.default.show(options, 'info'); } }, { key: 'success', value: function success(options) { _toast2.default.show(options, 'success'); } }, { key: 'error', value: function error(options) { _toast2.default.show(options, 'error'); } //数字填充,返回字符串,如将9填充为09 }, { key: 'pad', value: function pad(num, n) { var l = ('' + num).length; return Array(n > l ? n - l + 1 : 0).join(0) + num; } }, { key: 'prefixList', value: function prefixList() { return ['transform', 'transition']; } }, { key: 'css', value: function css(dom, data) { if (!dom) { return; } //换个方式实现,性能应该会有比较大的提升 var _data = this.parseStyleObj(data); Object.keys(_data).forEach(function (v) { dom.style.setProperty(v, _data[v]); }); } }, { key: 'removeCss', value: function removeCss(dom, props) { if (!dom) { return; } dom.style.removeProperty(props); if (this.prefixList().indexOf(props) >= 0) { dom.style.removeProperty('-webkit-' + props); } } //将样式对象转化为可使用的样式对象 }, { key: 'parseStyleObj', value: function parseStyleObj(data) { var _this = this; var cssNumber = ['columnCount', 'fillOpacity', 'fontWeight', 'lineHeight', 'opacity', 'order', 'orphans', 'widows', 'z-index', 'zoom']; var _data = _extends({}, data); Object.keys(_data).forEach(function (v) { if (_this.prefixList().indexOf(v) >= 0) { _data['-webkit-' + v] = _data[v]; } if (typeof _data[v] == 'number' && cssNumber.indexOf(v) < 0) { _data[v] = _data[v] + 'px'; } }); return _data; } }, { key: 'addClass', value: function addClass(dom, cls) { var className = dom.className; var cArr = className.split(' '); var addArr = cls.split(' '); addArr.forEach(function (v) { if (cArr.indexOf(v) < 0) { cArr.push(v); } }); dom.className = cArr.join(' '); } }, { key: 'removeClass', value: function removeClass(dom, cls) { var className = dom.className; var cArr = className.split(' '); var removeArr = cls.split(' '); cArr = cArr.filter(function (v) { return removeArr.indexOf(v) < 0; }); dom.className = cArr.join(' '); } }, { key: 'preventScroll', value: function preventScroll() { this.addClass(document.body, 'o-h'); } }, { key: 'cancelPreventScroll', value: function cancelPreventScroll() { this.removeClass(document.body, 'o-h'); } }, { key: 'preLoadImages', value: function preLoadImages(arr) { var newImages = []; for (var i = 0; i < arr.length; i++) { newImages[i] = new Image(); newImages[i].src = arr[i]; } } }, { key: 'isPC', value: function isPC() { var userAgentInfo = navigator.userAgent; var Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPod']; var flag = true; for (var v = 0; v < Agents.length; v++) { if (userAgentInfo.indexOf(Agents[v]) > 0) { flag = false; break; } } return flag; } }]); return Tool; }(); exports.default = new Tool();