// 基准大小const baseSize = 50export function getClientW() {    let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;    if (htmlWidth > 768) {        htmlWidth = 768    }    if (htmlWidth < 320) {        htmlWidth = 320    }    // console.log(htmlWidth);    return htmlWidth}//计算根节点 字体大小  自适应  remyfunction setRem(normalWidth = 375) {    const size = getClientW() / normalWidth * baseSize    document.body.style.fontSize = size + 'px'    let htmlDom = document.getElementsByTagName('html')[0]    htmlDom.style.fontSize = size + 'px'    return size}// 初始化setRem()// 扭转窗口大小时从新设置 remwindow.onresize = function () {    setRem()};//Android微信中,借助WeixinJSBridge对象来阻止字体大小调整(function () {    if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {        handleFontSize();    } else {        if (document.addEventListener) {            document.addEventListener("WeixinJSBridgeReady", handleFontSize, false);        } else if (document.attachEvent) {            //IE浏览器,非W3C标准            document.attachEvent("onWeixinJSBridgeReady", handleFontSize);        }    }    function handleFontSize() {        // 设置网页字体为默认大小        WeixinJSBridge.invoke('setFontSizeCallback', {            'fontSize': 0        });        // 重写设置网页字体大小的事件        WeixinJSBridge.on('menu:setfont', function () {            WeixinJSBridge.invoke('setFontSizeCallback', {                'fontSize': 0            });        });    }})();
(function(win, lib) {  var doc = win.document;  var docEl = doc.documentElement;  var metaEl = doc.querySelector('meta[name="viewport"]');  var flexibleEl = doc.querySelector('meta[name="flexible"]');  var dpr = 0;  var scale = 0;  var tid;  var flexible = lib.flexible || (lib.flexible = {});  if (metaEl) {    console.warn("将依据已有的meta标签来设置缩放比例");    var match = metaEl      .getAttribute("content")      // eslint-disable-next-line no-useless-escape      .match(/initial\-scale=([\d\.]+)/);    if (match) {      scale = parseFloat(match[1]);      dpr = parseInt(1 / scale);    }  } else if (flexibleEl) {    var content = flexibleEl.getAttribute("content");    if (content) {      // eslint-disable-next-line no-useless-escape      var initialDpr = content.match(/initial\-dpr=([\d\.]+)/);      // eslint-disable-next-line no-useless-escape      var maximumDpr = content.match(/maximum\-dpr=([\d\.]+)/);      if (initialDpr) {        dpr = parseFloat(initialDpr[1]);        scale = parseFloat((1 / dpr).toFixed(2));      }      if (maximumDpr) {        dpr = parseFloat(maximumDpr[1]);        scale = parseFloat((1 / dpr).toFixed(2));      }    }  }  if (!dpr && !scale) {    // eslint-disable-next-line no-unused-vars    var isAndroid = win.navigator.appVersion.match(/android/gi);    var isIPhone = win.navigator.appVersion.match(/iphone/gi);    var devicePixelRatio = win.devicePixelRatio;    if (isIPhone) {      // iOS下,对于2和3的屏,用2倍的计划,其余的用1倍计划      if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {        dpr = 3;      } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)) {        dpr = 2;      } else {        dpr = 1;      }    } else {      // 其余设施下,仍旧应用1倍的计划      dpr = 1;    }    scale = 1 / dpr;  }  docEl.setAttribute("data-dpr", dpr);  if (!metaEl) {    metaEl = doc.createElement("meta");    metaEl.setAttribute("name", "viewport");    metaEl.setAttribute(      "content",      "initial-scale=" +        scale +        ", maximum-scale=" +        scale +        ", minimum-scale=" +        scale +        ", user-scalable=no"    );    if (docEl.firstElementChild) {      docEl.firstElementChild.appendChild(metaEl);    } else {      var wrap = doc.createElement("div");      wrap.appendChild(metaEl);      doc.write(wrap.innerHTML);    }  }  // function refreshRem() {  //   var width = docEl.getBoundingClientRect().width;  //   // 最小1366px,最大适配2560px  //   if (width / dpr < 1366) {  //     width = 1366 * dpr;  //   } else if (width / dpr > 2560) {  //     width = 2560 * dpr;  //   }  //   // 设置成24等份,设计稿时1920px的,这样1rem就是80px  //   var rem = width / 24;  //   docEl.style.fontSize = rem + "px";  //   flexible.rem = win.rem = rem;  // }  function refreshRem() {    var baseSize = 100;    let basePc = baseSize / 1920; // 示意1920的设计图,应用100PX的默认值    let vW = window.innerWidth; // 以后窗口的宽度    let vH = window.innerHeight; // 以后窗口的高度    // 非正常屏幕下的尺寸换算    let dueH = vW * 1080 / 1920    if (vH < dueH) { // 以后屏幕高度小于应有的屏幕高度,就须要依据以后屏幕高度从新计算屏幕宽度      vW = vH * 1920 /1080    }    let rem = vW * basePc; // 以默认比例值乘以以后窗口宽度,失去该宽度下的相应font-size值    document.documentElement.style.fontSize =  rem + "px";    flexible.rem = win.rem = rem;  }  win.addEventListener(    "resize",    function() {      clearTimeout(tid);      tid = setTimeout(refreshRem, 300);    },    false  );  win.addEventListener(    "pageshow",    function(e) {      if (e.persisted) {        clearTimeout(tid);        tid = setTimeout(refreshRem, 300);      }    },    false  );  if (doc.readyState === "complete") {    doc.body.style.fontSize = 12 * dpr + "px";  } else {    doc.addEventListener(      "DOMContentLoaded",      // eslint-disable-next-line no-unused-vars      function(e) {        doc.body.style.fontSize = 12 * dpr + "px";      },      false    );  }  refreshRem();  flexible.dpr = win.dpr = dpr;  flexible.refreshRem = refreshRem;  flexible.rem2px = function(d) {    var val = parseFloat(d) * this.rem;    if (typeof d === "string" && d.match(/rem$/)) {      val += "px";    }    return val;  };  flexible.px2rem = function(d) {    var val = parseFloat(d) / this.rem;    if (typeof d === "string" && d.match(/px$/)) {      val += "rem";    }    return val;  };})(window, window["lib"] || (window["lib"] = {}));