啊鑫
7 天以前 fca192d3c38c5dcfbb6ace8bc71d6078f6a079b2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
"use strict";
 
exports.__esModule = true;
exports.addUnit = addUnit;
exports.unitToPx = unitToPx;
 
var _ = require("..");
 
var _number = require("../validate/number");
 
function addUnit(value) {
  if (!(0, _.isDef)(value)) {
    return undefined;
  }
 
  value = String(value);
  return (0, _number.isNumeric)(value) ? value + "px" : value;
} // cache
 
 
var rootFontSize;
 
function getRootFontSize() {
  if (!rootFontSize) {
    var doc = document.documentElement;
    var fontSize = doc.style.fontSize || window.getComputedStyle(doc).fontSize;
    rootFontSize = parseFloat(fontSize);
  }
 
  return rootFontSize;
}
 
function convertRem(value) {
  value = value.replace(/rem/g, '');
  return +value * getRootFontSize();
}
 
function convertVw(value) {
  value = value.replace(/vw/g, '');
  return +value * window.innerWidth / 100;
}
 
function convertVh(value) {
  value = value.replace(/vh/g, '');
  return +value * window.innerHeight / 100;
}
 
function unitToPx(value) {
  if (typeof value === 'number') {
    return value;
  }
 
  if (_.inBrowser) {
    if (value.indexOf('rem') !== -1) {
      return convertRem(value);
    }
 
    if (value.indexOf('vw') !== -1) {
      return convertVw(value);
    }
 
    if (value.indexOf('vh') !== -1) {
      return convertVh(value);
    }
  }
 
  return parseFloat(value);
}