关于flexible.js中将iphone条件下dpr的动态切换的疑问?

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');

clipboard.png

clipboard.png

貌似意思是这样给iPhone动态设置dpr会带来高清方案,但是@2x图片好像也可以呀。

将iphone条件下dpr的动态切换,同样需要给initial-scale进行动态设置,这样也带来一个问题,如果你想使用px,就必须匹配[dpr=2] [dpr=3] 的情况。在写1px的时候也就要对安卓和苹果不同对待,请问前辈们有什么看法?
或者对1px有什么更好的方案吗?谢谢!

阅读 1.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题