if (!dpr && !scale) {
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;
}
metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
貌似意思是这样给iPhone动态设置dpr会带来高清方案,但是@2x图片好像也可以呀。
将iphone条件下dpr的动态切换,同样需要给initial-scale进行动态设置,这样也带来一个问题,如果你想使用px,就必须匹配[dpr=2] [dpr=3] 的情况。在写1px的时候也就要对安卓和苹果不同对待,请问前辈们有什么看法?
或者对1px有什么更好的方案吗?谢谢!