用一段 js 计算 REM 的 font-size 值

REM 可以用js,也可以用 css来计算 html 的 font-size 值,这种方法是得用 js 的方式。
更新于: 2021-12-31 12:06:57
(function(doc, win) {
  'use strict';

  var docEle = doc.documentElement,
    dpr = Math.min(win.devicePixelRatio, 3),
    scale = 1 / dpr,
    resizeEvent = 'orientationchange' in win ? 'orientationchange' : 'resize';
  var PX = 'px';

  dpr = win.top === win.self ? dpr : 1;
  docEle.dataset.dpr = dpr;

  //initial:
  (function recalCulate() {
    var width = docEle.clientWidth;
    if (width / dpr > 750) {
      width = 750 * dpr;
    }
    docEle.dataset.scale = scale;
    docEle.dataset.width = width;
    docEle.dataset.percent = 100 * (width / 750);
    docEle.style.fontSize = 100 * (width / 750) + PX;
    if (!doc.addEventListener) return;
    win.addEventListener(resizeEvent, recalCulate, false);
  })();

})(document, window);