weex-nuke
Version:
基于 Rax 、Weex 的高性能组件体系 ~~
40 lines (34 loc) • 1.3 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
exports.caculateRemToPx = caculateRemToPx;
exports.removeRemUnit = removeRemUnit;
var _nukeEnv = require('../Env/index.js');
/**
* @description parse rem to even px to solve andoird float px issue.
*/
function caculateRemToPx(rem) {
var defaultWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 750;
// Default 1 rem to 1 px
if ((typeof rem === 'undefined' ? 'undefined' : _typeof(rem)) === 'object' && 'raw' in rem) {
rem = rem.raw;
}
if (_nukeEnv.isWeex) return rem;
rem = exports.removeRemUnit(rem);
var defaultPixUnit = document.documentElement.clientWidth / defaultWidth;
var num = Math.round(parseFloat(rem) * defaultPixUnit);
if (num % 2 === 0) {
return num + 'px';
}
return num - 1 + 'px';
}
/**
* @description remove rem unit for string like 12rem => 12
* @param {string or number} rem
*/
function removeRemUnit(rem) {
rem = String(rem);
return rem.replace('rem', '');
}
;