You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.9 KiB
61 lines
1.9 KiB
; (function (designWidth, maxWidth) {
|
|
var doc = document,
|
|
win = window;
|
|
var docEl = doc.documentElement;
|
|
var tid;
|
|
var rootItem, rootStyle;
|
|
|
|
function refreshRem() {
|
|
var width = docEl.getBoundingClientRect().width;
|
|
if (!maxWidth) {
|
|
maxWidth = 540;
|
|
}
|
|
;
|
|
if (width > maxWidth) {
|
|
width = maxWidth;
|
|
}
|
|
//与淘宝做法不同,直接采用简单的rem换算方法1rem=100px
|
|
var rem = width * 100 / designWidth;
|
|
console.log(rem);
|
|
|
|
//兼容UC开始
|
|
rootStyle = "html{font-size:" + rem + 'px !important}';
|
|
rootItem = document.getElementById('rootsize') || document.createElement("style");
|
|
if (!document.getElementById('rootsize')) {
|
|
document.getElementsByTagName("head")[0].appendChild(rootItem);
|
|
rootItem.id = 'rootsize';
|
|
}
|
|
if (rootItem.styleSheet) {
|
|
rootItem.styleSheet.disabled || (rootItem.styleSheet.cssText = rootStyle)
|
|
} else {
|
|
try {
|
|
rootItem.innerHTML = rootStyle
|
|
} catch (f) {
|
|
rootItem.innerText = rootStyle
|
|
}
|
|
}
|
|
//兼容UC结束
|
|
docEl.style.fontSize = rem + "px";
|
|
};
|
|
refreshRem();
|
|
|
|
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 = "16px";
|
|
} else {
|
|
doc.addEventListener("DOMContentLoaded", function (e) {
|
|
doc.body.style.fontSize = "16px";
|
|
}, false);
|
|
}
|
|
})(375, 750);
|