动态更改rem的值

501 阅读1分钟

有些页面需要做到分辨率更改,但页面依然保持一致的情况,这种情况下,所有的单位都需要用rem来控制。

动态改变rem代码:

 (function(doc, win) {
     var docEl = doc.documentElement,
         resizeEvt = "orientationchange" in window ? "orientationchange" : "resize",
         recalc = function() {
             if (docEl.clientWidth > 1600) {
                 let num = docEl.clientWidth - 1600;
                 docEl.style.fontSize = 100 + num/16 + "px";
             } else {
                 var width = docEl.clientWidth / 16;
                 docEl.style.fontSize = width + "px";
             }
         };
     if (!doc.addEventListener) return;
     win.addEventListener(resizeEvt, recalc, false);
     doc.addEventListener("DOMContentLoaded", recalc, false);
 })(document, window);

在css中定义好rem的初始值之后就能方便使用了。

如果想要保证分辨率更改页面不变,页面中所有单位必须用rem控制