(function flexible(window, document) {
var docEl = document.documentElement;
// dpr物理像素比
var dpr = window.devicePixelRatio || 1;
//调整body字体大小
function setBodyFontSize() {
if (document.body) { //代码从上往下执行,需要等待dom元素加载完毕设置字体大小
document.body.style.fontSize = (12 * dpr) + 'px';
} else {
document.addEventListener('DOMContentLoaded', setBodyFontSize);
}
}
setBodyFontSize();
// set 1rem = viewWidth / 10 设置html 元素的字体大小
function setRemUnit() {
var rem = docEl.clientWidth / 10;
docEl.style.fontSize = rem + 'px';
}
setRemUnit();
//当页面尺寸大小发生变化时,重新设置rem大小
window.addEventListener('resize',setRemUnit);
//pageshow是页面从新加载时触发的事件,类似load事件
window.addEventListener('pageshow',function (e) {
if(e.persisted){ //如果是从缓存加载出来的也重新加载
setRemUnit();
}
})
// 有的移动端浏览器不支持0.5像素的写法
if(dpr>=2){
var fakeBody = document.createElement('body');
var testElement=document.createElement('div');
testElement.style.border='.5px solid transparent';
fakeBody.appendChild(testElement);
docEl.appendChild(fakeBody);
if(testElement.offsetHeight===1){
docEl.classList.add('airlines');
}
docEl.removeChild(fakeBody);
}
}(window, document))