UNPKG

weex-nuke

Version:

基于 Rax 、Weex 的高性能组件体系 ~~

60 lines (55 loc) 1.79 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.hairLine = undefined; var _nukeEnv = require('nuke-env'); var _borderSeperate = require('./border-seperate'); var hairLine = {}; /** * 设备是否支持 0.5px * decide if container support 0.5px in web env * @return {boolean} supportFlag */ hairLine.detect = function () { var hairLineFlag = void 0; if (!_nukeEnv.isWeb) return true; if (window.OffsetHeightForRxBorder) { hairLineFlag = window.OffsetHeightForRxBorder; } else if (window && window.devicePixelRatio && window.devicePixelRatio >= 2) { var testElem = document.createElement('div'); testElem.style.border = '.5px solid transparent'; testElem.style.height = 0; testElem.style.boxSizing = 'content-box'; document.body.appendChild(testElem); if (testElem.offsetHeight === 1) { hairLineFlag = true; } else { hairLineFlag = false; } window.OffsetHeightForRxBorder = hairLineFlag; document.body.removeChild(testElem); } return hairLineFlag; }; /** * 高清 0.5px 样式 * 0.5px hairline style * @param {object} style * @return {object} style */ hairLine.fixBorder = function (style) { if (!_nukeEnv.isWeb) return style; var borderWidthHair = hairLine.detect() ? '0.5px' : '1px'; style = (0, _borderSeperate.borderSeperate)(style, ['Width']); ['Top', 'Left', 'Right', 'Bottom'].map(function (direction) { if (style['border' + direction + 'Width'] && parseFloat(style['border' + direction + 'Width'], 10) === 1) { style['border' + direction + 'Width'] = borderWidthHair; } }); if (style.borderWidth && parseFloat(style.borderWidth, 10) === 1) { style.borderWidth = borderWidthHair; } return style; }; exports.hairLine = hairLine;