Android部分webview rem计算误差记录
2019-01-07 本文已影响0人
Pretend_ebb0
开发webapp过程中 发现安卓某些机型 rem 计算有误差 目前仅发现 三星s7 s8 等曲面屏手机存在该问题
下面记录解决方案
document.documentElement.style.fontSize=document.documentElement.offsetWidth/7.5+"px";
var html = document.getElementsByTagName('html')[0];
var settedFs = parseInt(html.style.fontSize);
var realFs = parseInt(window.getComputedStyle(html).fontSize);
var whileCount = 0;
while(true) {
var realFs = parseInt(window.getComputedStyle(html).fontSize);
var delta = realFs - settedFs;
console.log(settedFs,realFs)
if (Math.abs(delta) != 0) //不相等
{
html.setAttribute('style', 'font-size:'+settedFs *(settedFs/realFs) + 'px!important');
//settedFs/realFs 计算比实际值小N倍 然后在原基础上在放大N倍
} else
break;
if (whileCount++ > 100) //为了避免死循环
break
}